[英]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.