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

Selenium WebDriver无法找到Selenium IDE可以找到的元素

涂玉韵
2023-03-14

这是一个我没想到会遇到的问题。我正在Ubuntu 11上使用Eclipse中的JUnit 4编写一个硒网络驱动程序测试。我一直在使用Selenium IDE,并结合Firebug和firepath,以确保我在JUnit测试中指定的x路径是正确的。我遇到的问题是selenium IDE命令,

command 'click' at target '//span[contains(text(),'MyTarget')]/PATHTOTARGET'

每次都通过。然而,当我使用以下的webDrive-它总是失败

driver.findElement(By.xpath("//span[contains(text(),'MyTarget')]/PATHTOTARGET")).click();

我已经使用Selenium IDE和Selenium Webdriver几个月了,所以我编写了自己的click命令,从未遇到过这种情况。有人知道这是什么原因吗?

xpath在刷新时不会更改,每次都有效。我也尝试过等待页面上的所有内容加载而没有运气。

edit1:这是由我们的应用程序的extJS上下文菜单的工作方式引起的问题。如果您从上下文菜单中选择一项,我们的应用程序将执行一些导致上下文菜单失去selenium焦点的工作。在选择新菜单项之前,添加刷新,然后延长等待时间,效果最佳。

共有2个答案

公西嘉玉
2023-03-14

这篇文章很旧,但我在寻找同一问题的答案时偶然发现了它。所以我的解决方案可能会有帮助。事实证明,我在页面中有一个框架,所需的元素就在这个框架内。更重要的是,加载页面时,它不包含任何元素,只包含指向帧源的链接。当我添加线路驱动程序时。切换到。帧(0);一切顺利。

佴涵蓄
2023-03-14

由于您得到的异常是一个StaleElementRe的异常,所以您似乎还是太快了。解释:

  1. 元素位于您正在使用的页面上

您需要等待上一个操作完成,最好是等待该操作的某些结果。屏幕上有什么新东西吗?等等!

 类似资料:
  • 问题内容: 我正在尝试抓取以下网站:https : //www.bancosantander.es/es/particulares/prestamos/prestamo- coche/simulador 我正在尝试做的是: 通过移动滑块来模拟数量和持续时间。我正在尝试使用网络驱动程序找到它们。 但是我不能,事实上我已经开始抓取了。 出现的错误如下: 我的代码: 问题答案: 您可以尝试以下方法输入值

  • 问题内容: 我正在尝试使用selenium在kahoot.it网页上自动生成大量用户,以使它们出现在类的前面,但是,当我尝试访问inputSession项时(在其中写入gameID进入游戏) 这是错误: 任何帮助将非常感激!:) 问题答案: 可能是竞标条件,在该竞标条件下find元素在页面上出现之前就已执行。看一下等待超时文档。这是文档中的示例

  • 问题内容: 我有一个工作脚本,可以使用selenium登录到站点,如下所示: script.py 通过以下方式在安装了Firefox的 亚马逊Ubuntu盒子 上运行该脚本: 我得到的错误是: selenium.common.exceptions.NoSuchElementException:消息:u’无法找到元素:{“ method”:“ id”,“ selector”:“ content”}’

  • [[Img1][Img2[Img3]我试图通过链接文本获取元素。但是低于例外。异常在线程"main"org.openqa.selenium.NoSuchElement异常:没有这样的元素:无法定位元素:{"方法":"链接文本","选择器":"CFDSDSR"} 我尝试切换到帧,但它给出了未找到的帧,但该帧存在: XPath: /html/body/table/tbody/tr/td/form/ta

  • 我正在尝试使用ISOWeek,但在任何地方都找不到它。我尝试了几种不同的使用方法: 我已经尝试添加每一个系统。我可以找到运行时引用,但它总是给出这些错误: 错误CS0234:命名空间“系统”中不存在类型或命名空间名称“ISOWeek”。全球化“(是否缺少程序集引用?) 错误CS0103:名称“ISOWeek”在当前上下文中不存在 错误CS0246:找不到类型或命名空间名称'ISOYork'(您是否

  • 问题内容: 我正在尝试从Java程序运行jar文件,并且成功使用了: 但是,当我尝试使用时,出现异常: 我试图更改指定文件的位置,并指出了其完整路径,但无法正常工作。是什么原因引起的? 问题答案: 希望它的参数分别传递。 也就是说,对于每个命令和参数,希望将其视为单独的参数。 目前,您正在告诉它运行“ java -jar algoPath的值是什么” …从的角度来看,这是无效的命令。 尝试… 代替