【问题标题】:I have "no such element: Unable to locate element" error although ID is 100% correct我有“没有这样的元素:无法定位元素”错误,尽管 ID 是 100% 正确的
【发布时间】:2023-01-03 05:31:04
【问题描述】:

我正在尝试使用弹出窗口单击“确定”按钮硒和 Python但我遇到了一个错误“没有这样的元素:无法定位元素”尽管确定我的 ID 是 100% 正确的。

> <a class="dxm-content dxm-hasText dx dxalink" href="javascript:;" role="menuitem" id="Dialog_PAC_Menu_DXI0_T"><span class="dx-vam dxm-contentText">OK</span></a>

我的 python 硒代码:

Export2 = driver.find_element(By.XPATH,'//a[@id="Dialog_PAC_Menu_DXI0_T"]')
Export2.click()

我到底哪里出错了,我也尝试了完整的Xpath,等待直到可点击,时间睡眠。一切!

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 你能分享那个页面的链接和你所有的 Selenium 代码吗?
  • 该元素可能在框架内吗?
  • 这是一个内联网公司网站,我会在帖子正文中添加我的硒代码
  • 为什么不使用 findElement(By.id("Dialog_PAC_Menu_DXI0_T")); ?如果失败,则可能存在多个具有相同 ID 的链接

标签: python html selenium


【解决方案1】:

好吧,看起来您找到了答案,那是因为您的元素在 iFrame 中,所以我将在这里发布一个答案,以便其他人在查看您的问题时可以找到一个简单的答案。

tmpheader = driver.find_element(By.CSS_SELECTOR, "#modal > iframe")
driver.switch_to.frame(tmpheader)
Export2 = driver.find_element(By.XPATH,'//a[@id="Dialog_PAC_Menu_DXI0_T"]')
Export2.click()

这会将我们正在寻找的当前驱动程序切换到页面上的第一个 iFrame 元素。如果有多个 iFrame,您需要检查第一行中的更多属性,以确保您看到的是正确的

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2020-07-24
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多