yan061

导航

selenium处理shadow元素

ShadowRoot 是 Shadow DOM 下面的根,跟其他元素是隔离的,即使我们选择copy selector/xpath 依然是定位不到的,如下图

要定位此类元素需要先定位到它的根shadowRoot,然后再定位下面的元素

document.querySelector('#userMenu').shadowRoot.querySelector('div')

然后再用selenium的driver去执行js语句

String js1 = "document.querySelector('#userMenu').shadowRoot.querySelector('div')";
JavascriptExecutor driver1 = (JavascriptExecutor) driver;
WebElement element = (WebElement)driver1.executeScript(js1);

接下来就可以对元素进行操作了

posted on 2023-02-09 11:14  yan061  阅读(377)  评论(0编辑  收藏  举报