我试图点击“北美”'和'美国',在以下网址: 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)。
答案 0 :(得分:2)
如您所见,在这种情况下按索引定位元素并不十分可靠。元素顺序之类的东西往往会经常变化。相反,请使用data-region
属性,例如:
driver.find_element_by_css_selector("button[data-region=n-america]").click()
答案 1 :(得分:0)
尝试使用以下代码:
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()
答案 2 :(得分:0)
如果您可能希望明天更改国家/地区名称,则可以使用以下代码段:
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