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);
接下来就可以对元素进行操作了