问题标签 [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.
selenium - 例外:过时的元素引用:元素未附加到页面文档
我的 HTML 页面包含(除其他外)这一点:
在我测试页面的代码中,然后我执行以下操作:
这崩溃了
但是,这个错误似乎没有道理,因为该元素仍然存在:
我该如何解决这个问题?
(环境是 APL。我在这里省略了一些 APL 细节,因为我担心它们可能会避免核心问题的“分心”)
在发布之前的研究期间,我看到了问题stale element reference: element is not attach to the page document但它似乎并不适用:
- 如图所示,我正在执行
FindElementById
并在找到它后立即访问它。DOM 没有改变,页面是静态的。 - 关于它不再是 DOM 的一部分的解释不适用:它被发现了,并且正如我试图展示的那样,我可以访问诸如
Displayed
or之类的属性Text
。
我也浏览了参考资料,但这种解释没有帮助。
此外,没有循环进行,也没有改变页面。这真的很简单:GoToUrl * Find * MoveToElement。
我删除了 chromedriver-tag,因为我可以使用 Firefox 和 geckodriver 重现它。但是,使用 geckodriver,当我这样做时,我得到“例外:以前未见过的 Web 元素引用:” MoveToElement
- 但我可以el.Click
以与 Chrome 完全相同的方式执行和访问其属性。
更新:一位同事对此进行了更深入的调查(超出了我的舒适区),发现在抛出这个“陈旧的异常”之前,有一个(我不知道如何正确措辞以及它发生在哪里)一个 404 异常。我只知道 404 是一个 HTTP 状态码——这对我来说就是如此。但显然浏览器没有被要求在任何地方导航,所以我不能与 HTTP404 相关。这是否会为更熟悉 WebDriver 内部的人敲响警钟?
selenium - selenium-webdriver 4.0 不显示异常消息
我正在使用 Selenium 与 Capybara 和 Cucumber 在 Ruby Mine 中针对 Chrome 浏览器运行自动化测试。我已将 selenium-webdriver 更新为 4.0.0.alpha5 版本(之前的版本是 3.13.1),之后我发现访问 Capybary 函数时发生了一些异常,当发生此错误时,我总是收到此消息:
我希望在文档中找不到与元素相关的错误或任何有意义的原因,此消息阻止解决代码中的潜在问题。
如何避免此消息?为了正确捕获异常,是否需要进行任何错误配置?
- 编辑 -
堆栈跟踪:
assertPageTitle 方法在这一行失败
java - 当在行中执行某些操作时重新加载页面后更改表中的行数时如何在 selenium java 中处理 webtable
目前我正在经历一种情况。表格正文中有三行。如果行与文本匹配,我必须对每一行执行一些操作。为此,我正在获取行的大小并使用 for 循环并检查条件。当条件满足时,我必须执行一些操作,根据我的期望,从 webtable 中删除行。此外,我得到 org.openqa.selenium.StaleElementReferenceException: here "totalOrders.get(i).click();" 当循环尝试在下一行执行操作时
这是我的代码的一部分:
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 中?
json - Healenium 脚本未与 selenium 最新版本 4.1.0 一起运行
我们正在将 pom.xml 上的 selenium 版本 3.141.59 升级到 4.1.0,但是在运行 healenium 脚本时它给了我空指针异常。当使用 selenium 版本 3.141.59 时,脚本运行良好。