为什么我无法选择/单击Selenium的裸文本链接?

时间:2016-05-03 16:56:59

标签: python selenium

我正在为Firefox使用Selenium网络驱动程序和Selenium IDE插件。

我要做的就是点击语言页面上的“美国”。

http://www.nike.com/language_tunnel

我正在尝试这个(直接来自IDE录音机):

driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
driver.find_element_by_link_text("United States").click()

请注意,第一步有效,点击“AMERICAS”,但是当我在Python中运行它时,点击“美国”错误的最后一步:

Unable to locate element: {"method":"link text","selector":"United States"}

我在这里做错了什么?有没有其他方法来选择此链接,因为通过链接文本查找显然不会在这里工作?

1 个答案:

答案 0 :(得分:1)

以下是我为使其发挥作用所做的事情:

  • 将定位器更改为li.US a CSS选择器
  • 添加等待“美国”链接
  • 的可见性等待

守则:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Firefox()
driver.maximize_window()
driver.get("http://www.nike.com/language_tunnel")

wait = WebDriverWait(driver, 10)

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