当前位置: 首页 > 知识库问答 >
问题:

硒不能找到元素,即使它存在

朱刚捷
2023-03-14

这是我用来使用铬Web驱动程序和python查找元素的代码行

这是每次尝试运行代码时抛出的错误

这些是标题栏上的按钮,我试图让我的代码单击html按钮

这是努力按钮的html代码,我试图使用selenium来定位它,以便它可以点击这里,但它总是说没有找到这样的元素

我甚至创建了一个单独的函数来一次又一次地找到元素并在每次成功尝试后Hibernate5秒,直到它点击了元素,但仍然没有运气它永远运行而没有找到元素

这就是我调用第五张图片中所解释的函数的地方。这里的驱动程序是chromedriver,它持续重复10次,间隔5秒,但仍然没有运气,我一直在观察chrome窗口,驱动程序完成所有工作,页面已经加载,但即使加载后仍然不工作。

这是检查元素的整个html代码的开始,以防有人需要

这是剩余的 HTML 代码,如果需要,已选择“努力”区域

我甚至尝试过使用shadow root,但这也不起作用,我也不确定这是shadow root的情况,因为我在检查html代码时没有看到html中指定的shadow根。

共有2个答案

缪茂勋
2023-03-14

尝试以下 x 路径使用 xpath 包含来解决您的问题:

 WebDriverWait(driver, 30).until(
                EC.element_to_be_clickable((By.XPATH, "//a[contains(text(), 'EFFORTS')]")))

WebDriverWait(driver, 30).until(
            EC.element_to_be_clickable((By.ID, "tmsMobileId")))

注意:请将以下导入添加到您的解决方案中

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

如果您仍然没有遇到这样的元素异常,请检查您的元素是否存在于iframe下。如果是这样,那么您需要在处理努力锚标记之前切换iframe

那利
2023-03-14

您尝试定位的元素位于类iframeStyle的iframe下。首先切换到该iframe以访问努力链接。

 类似资料:
  • 任何提示都会很有帮助!

  • 大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。

  • 我正在自动化一个枯燥的数据输入任务,所以我创建了一个程序,基本上是使用Selenium为我点击和键入。它跑得很好!除非它到达这个特定的“编辑详细信息...”元素,但是,无论我尝试什么方法,selenium都无法找到该元素。 我尝试使用一个CSS选择器来访问ID,但没有成功。我还尝试使用XPATH,并尝试通过给它一个带有按钮文本的'contains'语句来更加具体。最后,我使用selenium ID

  • 我试图运行下面的selenium代码,但我得到了一个异常: 封装演示; Selenium试图在单击登录名webelement之前找到webelement的电子邮件ID。请帮忙。

  • URL:http://bcmprod.brill.com/rsuite-cms/ 我正在尝试从上面的客户端站点自动下载手稿。我在C#中使用selenium phantomjs。 我有用户凭据。但是,组成登录表单的元素(例如用户名、密码)在页面源中不存在,但当您在浏览器中检查这些元素时,这些元素就存在了。 这些是我用来从“检查元素”中定位它们的xpath(ID是动态分配的,这就是我没有使用它们的原因

  • 我正在使用selenium测试脚本。我得到以下错误和这个错误随机发生。当我跑10次时,我会得到大约两次。所以它不是真的可复制的。有人知道为什么会这样吗?我试图单击的元素在浏览器中绝对可见,并且不会四处移动,因此不需要调整大小或拖动元素。我正在使用chrome webdriver,我阅读了其他故障排除策略(调试“Element is not clickable at point”错误),它们似乎与我