我最近开始使用 Selenide,我喜欢它所允许的流畅代码。 然而,我对 ElementsCollection 确实有一个奇怪的问题。
$$("some ref").filterBy(not(attribute("an-attr-that-should-not-be"))).getTexts()
此查询间歇性地返回字符串化的 StaleElementReferenceExceptions
,我不明白为什么。
如果我在调试器中运行查询,它会返回有效值,而在正常运行时(单线程应用程序)期间,这就是我得到的。
目标元素是 GWT 组合框结果列表。
有人可以给我指出正确的方向吗?
更新:如果相关的话,我正在使用 InternetExplorerDriver。
最佳答案
Chrome 和 ChromeDriver 专门触发 StaleElementReferenceException
,就像您的测试点一样 - 任何时候元素不再可见,您对它的 WebElement
引用就会变得无效,并且你必须再查一下。如果组合显示/隐藏或更改这些组合可能会导致这种情况(需要有关哪个组合以及似乎导致它更具体的原因的更多详细信息) - 当您希望使用它时尝试查找该元素,而不是一次又一次地重复使用引用。
关于java - Selenide ElementsCollection 抛出 StaleElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372030/