繁体   English   中英

Selenium find_elements 以非基于网站的顺序输出

[英]Selenium find_elements output in non-website based order

今天我打开了一张关于如何找到所有带有特定名称的 url 链接的票,这里被了不起的人解决了,但是,现在我面临一个问题,即输出的顺序与网站不对应.

当前代码:

website = 'https://www.abitareco.it/nuove-costruzioni-milano.html'
path = Path().joinpath('util', 'chromedriver')
driver = webdriver.Chrome(path)
driver.get(website)

main = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "p1")))

url_list = driver.find_elements(By.XPATH, './/a[contains(@href, "scheda")]')
for x in url_list:
    print(x.get_attribute('href'))

输出:

https://www.abitareco.it/scheda-MILANO2.html
https://www.abitareco.it/scheda-MILANO2-NUOVOCENTROPARCO.html
https://www.abitareco.it/scheda-MARTESANA-GRECO.html
https://www.abitareco.it/scheda-CADORE.html
...

问题是网站上的项目顺序如下:

0                   ADRIANO
1                    BAGGIO
2                    BAGGIO
3                     BRERA
4                    CADORE
...

如您所见,第一个 url 应该是 ADRIANO,然后是 BAGGIO 和 BAGGIO2。

我将如何解决这个问题并修复排序?

谢谢!

我认为,问题在于 xpath,如果你使用这个:

//div[@name='p1']/a

然后打印href,我认为它会按网络顺序打印:

url_list = driver.find_elements(By.XPATH, "//div[@name='p1']/a")
for x in url_list:
    print(x.get_attribute('href'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM