【问题标题】:Unable to locate element using selenium webdriver in python无法在 python 中使用 selenium webdriver 定位元素
【发布时间】:2017-06-20 19:07:34
【问题描述】:

我想在一个名为http://elegalix.allahabadhighcourt.in 的网站上进行一些自动化测试。我正在使用以下python代码单击上述网站上名为“高级”的按钮:

代码#

from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get('http://elegalix.allahabadhighcourt.in')
driver.set_page_load_timeout(20)
driver.maximize_window()
driver.find_element_by_xpath("//input[@value='Advanced']").click()

错误#

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //input[@value='Advanced']

P.S 我是 python 编程的新手。我尝试了不同的 xpath 变体,并尝试使用其他 find_element_by 方法,但似乎没有一个在这个网站上工作......我在 Firefox 浏览器上也遇到了类似的错误......

【问题讨论】:

    标签: python selenium xpath


    【解决方案1】:

    因为你要找的元素在一个框架内,先切换到框架再搜索该元素

    from selenium import webdriver
    driver = webdriver.Chrome('./chromedriver')
    driver.get('http://elegalix.allahabadhighcourt.in')
    driver.set_page_load_timeout(20)
    driver.maximize_window()
    driver.switch_to.frame(driver.find_element_by_name('sidebarmenu'))
    driver.find_element_by_xpath("//input[@value='Advanced']").click()
    driver.switch_to.default_content()
    

    【讨论】:

    • 非常感谢。你能推荐一些很好的资源来学习使用 selenium 进行网络自动化的 python ...我在 c/c++ 方面有很好的经验,但没有 HTML/CSS 知识
    • youtu.be/l15ZJAbxCL8,这是一个关于如何使用 selenium 和 python 进行 Web 自动化的精彩演示和见解。这更适合测试,但应该可以帮助您入门
    【解决方案2】:

    我遇到了这个问题和关于窗口大小的问题。因为当窗口大小是小对象时,位置发生了变化,所以我使用 driver.maximize_window() 然后我使用 driver.find 方法它可以正常工作。

    【讨论】:

      【解决方案3】:

      在打开链接的命令后添加:

      driver.maximize_window()
      

      【讨论】:

        猜你喜欢
        • 2021-04-12
        • 2018-09-30
        • 1970-01-01
        • 1970-01-01
        • 2016-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        相关资源
        最近更新 更多