簡體   English   中英

如何使用Selenium Webdriver和Python單擊語言/區域鏈接?

[英]How to click language/region link using Selenium Webdriver and Python?

我正在嘗試在以下URL上單擊“北美”和“美國”: http : //www.nike.com/language_tunnel

這是我已經工作了幾個星期的步驟,但是現在似乎不起作用。

# choose country/region
driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "li.US a"))).click()

現在,第一個命令似乎打開了南美,然后由於尋找美國而停滯不前,但南美下沒有美國聯系。 我相信我需要更改xPath,但是我不確定什么是正確的xpath(並且寧願完全不使用xpath)。

如您所見,在這種情況下按索引定位元素並不十分可靠。 諸如元素順序之類的事物往往會頻繁變化。 而是使用data-region屬性,例如:

driver.find_element_by_css_selector("button[data-region=n-america]").click()

嘗試使用以下代碼:

driver.find_element_by_xpath('//button[@data-region="n-america"]').click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "li  a[data-country="US"]"))).click()

如果您明天想更改國家/地區名稱,則可以使用以下代碼段:

countryToSearch = "North America"  // you can change this accordingly, rest should work fine
for countries in driver.find_elements_by_xpath("(//button[@type='button'])"):
    countryName = countries.text
    if countryName == countryToSearch:
        countries.click()
        break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM