问题标签 [selenium-webdriver4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
296 浏览

selenium - 例外:过时的元素引用:元素未附加到页面文档

我的 HTML 页面包含(除其他外)这一点:

在我测试页面的代码中,然后我执行以下操作:

这崩溃了

但是,这个错误似乎没有道理,因为该元素仍然存在:

我该如何解决这个问题?

(环境是 APL。我在这里省略了一些 APL 细节,因为我担心它们可能会避免核心问题的“分心”)

在发布之前的研究期间,我看到了问题stale element reference: element is not attach to the page document但它似乎并不适用:

  • 如图所示,我正在执行FindElementById并在找到它后立即访问它。DOM 没有改变,页面是静态的。
  • 关于它不再是 DOM 的一部分的解释不适用:它被发现了,并且正如我试图展示的那样,我可以访问诸如Displayedor之类的属性Text

我也浏览了参考资料,但这种解释没有帮助。

此外,没有循环进行,也没有改变页面。这真的很简单:GoToUrl * Find * MoveToElement。

我删除了 chromedriver-tag,因为我可以使用 Firefox 和 geckodriver 重现它。但是,使用 geckodriver,当我这样做时,我得到“例外:以前未见过的 Web 元素引用:” MoveToElement- 但我可以el.Click以与 Chrome 完全相同的方式执行和访问其属性。

更新:一位同事对此进行了更深入的调查(超出了我的舒适区),发现在抛出这个“陈旧的异常”之前,有一个(我不知道如何正确措辞以及它发生在哪里)一个 404 异常。我只知道 404 是一个 HTTP 状态码——这对我来说就是如此。但显然浏览器没有被要求在任何地方导航,所以我不能与 HTTP404 相关。这是否会为更熟悉 WebDriver 内部的人敲响警钟?

0 投票
1 回答
73 浏览

selenium - selenium-webdriver 4.0 不显示异常消息

我正在使用 Selenium 与 Capybara 和 Cucumber 在 Ruby Mine 中针对 Chrome 浏览器运行自动化测试。我已将 selenium-webdriver 更新为 4.0.0.alpha5 版本(之前的版本是 3.13.1),之后我发现访问 Capybary 函数时发生了一些异常,当发生此错误时,我总是收到此消息:

我希望在文档中找不到与元素相关的错误或任何有意义的原因,此消息阻止解决代码中的潜在问题。

如何避免此消息?为了正确捕获异常,是否需要进行任何错误配置?

- 编辑 -

堆栈跟踪:

assertPageTitle 方法在这一行失败

0 投票
1 回答
71 浏览

java - 当在行中执行某些操作时重新加载页面后更改表中的行数时如何在 selenium java 中处理 webtable

目前我正在经历一种情况。表格正文中有三行。如果行与文本匹配,我必须对每一行执行一些操作。为此,我正在获取行的大小并使用 for 循环并检查条件。当条件满足时,我必须执行一些操作,根据我的期望,从 webtable 中删除行。此外,我得到 org.openqa.selenium.StaleElementReferenceException: here "totalOrders.get(i).click();" 当循环尝试在下一行执行操作时

这是我的代码的一部分:

0 投票
0 回答
38 浏览

javascript - 将 CSS 注入 Selenium 驱动程序会导致 Linux 中的 javascript 错误,而不是 macOS

下面的 python (v. 3.9.7) 函数将从标准 CSS 文件加载的 CSS 样式注入到 selenium 驱动程序对象中。虽然在 macOS (11.5.2, homebrew) 中正确应用了样式,但在 Linux (Ubuntu 20.04) 中没有应用样式并且此消息被抛出:javascript error: Invalid or unexpected token

那么字符串的哪一部分导致了问题,我如何在发送之前对字符串进行预处理?

更新:我缩小了有问题的字符串:它不是 Python 变量中的字符串,它位于加载的 CSS 文件本身内,它是包含规则中src属性的行@font-face

更新 2:好吧,感谢@cruisepandey,我发现了 CSS 中有问题的标记:它是 CSS 文件中的单引号,例如font-family: 'serif';. 用双引号替换它们可以解决问题。为什么允许在变量中使用单引号,但在 CSS 文件本身中却不允许?另外:为什么问题出现在 linux 而不是 macOS 中?

0 投票
0 回答
17 浏览

json - Healenium 脚本未与 selenium 最新版本 4.1.0 一起运行

我们正在将 pom.xml 上的 selenium 版本 3.141.59 升级到 4.1.0,但是在运行 healenium 脚本时它给了我空指针异常。当使用 selenium 版本 3.141.59 时,脚本运行良好。