如何使用Selenium Webdriver for Firefox处理Shadow-dom元素

3

我正在使用java-selenium Webdriver测试一个应用程序,其中存在一些影子DOM元素。如何为Firefox driver测试它们?

我尝试了以下代码:

WebElement ele = (WebElement) ((JavascriptExecutor)driver).executeScript("return arguments[0].shadowRoot",element);
return ele;

这适用于Chrome浏览器,但是在Firefox浏览器中会出现“Javascript Exception:Cyclic object error”错误。请问你能否帮忙解决?

请阅读此链接 https://www.seleniumeasy.com/selenium-tutorials/accessing-shadow-dom-elements-with-webdriver - stacktome
@stacktome 你好。我尝试了你给出的链接中提到的Firefox方法。但是我遇到了一个“超时异常-等待5秒钟但元素不可见”的问题。 - VAMSHI KRISHNA SAI NAGABANDI
更新问题并附上新的代码和错误信息。 - stacktome
1个回答

3

虽然不是一个解决方案,但可以通过以下方法解决:

不使用 "return arguments[0].shadowRoot" 而是使用 "return arguments[0].shadowRoot.children" 这将返回根节点的集合,您可以使用索引或自己喜欢的集合查询方法来向前移动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接