【问题标题】:Why am I unable to select/click a bare text link with Selenium?为什么我无法使用 Selenium 选择/单击纯文本链接?
【发布时间】:2016-05-04 01:08:33
【问题描述】:

我正在为 Firefox 使用 Selenium Web 驱动程序和 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 中运行它时,点击“United States”的最后一步出错:

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

我在这里做错了什么?由于通过链接文本查找显然在这里不起作用,是否有其他方法可以选择此链接?

【问题讨论】:

    标签: python selenium


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-27
      • 2017-08-21
      • 2018-02-08
      • 1970-01-01
      • 2015-09-12
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多