【发布时间】:2021-05-28 14:55:50
【问题描述】:
我正在使用 Selenium Java 框架进行测试自动化,最近该应用程序使用 Shadow DOM 进行了升级。我们尝试使用 javascript 执行器 querySelector 实现自动化。该应用程序在单个页面中有超过 20 个影子根,并且大多数影子根是前一个根的子级。因此,要识别一个元素,我们需要遍历许多根,如 document.querySelector('root1').shadowRoot.querySelector('root2')....一样明智地直到第 n 个根才能找到一个元素。
WebElement DropDown = (WebElement) js.executeScript("return document.querySelector('sn-test-layouts > sn-test-main > sn-test-contents').shadowRoot.querySelector('testroot1').shadowRoot.querySelector('testroot2')");
找到一个元素后,正常的 selenium click 或 select 方法不起作用。所以我使用javascript方法来执行点击,输入文本等。
您能否提供有关使用 selenium Java 自动化 Shadow DOM 的任何其他解决方案的见解。提前致谢
【问题讨论】:
标签: javascript java selenium-webdriver automated-tests shadow-dom