![](/img/trans.png)
[英]How to click a link from a hover menu using Selenium Webdriver and 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.