【问题标题】:NoSuchElementException in Selenium PythonSelenium Python 中的 NoSuchElementException
【发布时间】:2021-06-25 02:15:53
【问题描述】:

我正在尝试使用 Selenium 打开一个网站,在其中找到一个特定的搜索框并在其中填写公司名称(示例中为 MAGAZINE LUIZA S.A.),然后单击搜索框旁边的“搜索”按钮,因为如果我只是按“输入”,它将不起作用。

nav = webdriver.Edge()

nav.implicitly_wait(10)

nav.get('http://www.b3.com.br/pt_br/produtos-e-servicos/negociacao/renda-variavel/empresas-listadas.htm')

nav.find_element_by_xpath("/html/body/form/div[3]/div[1]/div/div/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/div[1]/label/span[1]/input[1]").send_keys('MAGAZINE LUIZA S.A.')

nav.find_elements_by_xpath('/html/body/form/div[3]/div[1]/div/div/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/div[2]/input').click() 

我通过检查它们并在 Microsoft Edge 中“复制完整的 Xpath”来获得搜索栏和搜索按钮的 Xpath。

问题是我收到此错误:

NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"/html/body/form/div[3]/div[1]/div/div /div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/div[1]/label/span[1]/input[1]"} (会话信息:MicrosoftEdge=91.0.864.54)

但我已验证我已为这两个命令复制并粘贴了正确的 Xpath。有人可以帮忙吗?

【问题讨论】:

    标签: python selenium-webdriver


    【解决方案1】:

    你需要处理 iframe,XPath 是相对于 iframe 的。

    这是您修改后的代码

    nav = webdriver.Edge()
    
    nav.implicitly_wait(10)
    
    nav.get('http://www.b3.com.br/pt_br/produtos-e-servicos/negociacao/renda-variavel/empresas-listadas.htm')
    
    
    iframe = nav.find_element_by_xpath('/html/body/main/div[4]/div/div[1]/div[1]/div/form/section/div/div/div/iframe')
    nav.switch_to.frame(iframe)
    inp = nav.find_element_by_xpath("/html/body/form/div[3]/div[1]/div/div/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/div[1]/label/span[1]/input[1]")
    
    inp.send_keys('MAGAZINE LUIZA S.A.')
    
    nav.find_element_by_xpath('/html/body/form/div[3]/div[1]/div/div/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/div[2]/input').click()
    

    【讨论】:

    • 谢谢,成功了!您是如何找到 iframe 元素的 XPath 的?
    • 只需找到输入内容所在的 iframe,然后复制完整的 XPath。
    猜你喜欢
    • 2020-04-24
    • 2017-10-15
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-10-12
    • 2020-04-03
    相关资源
    最近更新 更多