如何使用SeleniumWebDriver和Python单击语言/区域链接?

如何使用SeleniumWebDriver和Python单击语言/区域链接?,python,selenium,Python,Selenium,我正试图点击“北美”和“美国”,网址如下: 以下是我工作了几个星期的步骤,但现在似乎不起作用 # 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() 第一个司令部现在似乎打开了南美洲,然后因为它正在

我正试图点击“北美”和“美国”,网址如下:

以下是我工作了几个星期的步骤,但现在似乎不起作用

# 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)。

正如您所看到的,在这种情况下,按索引定位元素并不十分可靠。像元素的顺序这样的事情往往会经常改变。相反,请使用
数据区域
属性,例如:

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

如您所见,在这种情况下,按索引定位元素并不十分可靠。像元素的顺序这样的事情往往会经常改变。相反,请使用
数据区域
属性,例如:

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()

请尝试使用以下代码:

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

如果您明天想更改国家名称,可以使用以下代码段:

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

希望你标记出解决问题的正确答案。希望你标记出解决问题的正确答案。