[英]Access to shadow DOM tree
Can't access to element inside shadow dom. 无法访问影子dom内部的元素。
Screenshot demonstrating how it looks: 屏幕截图展示了它的外观:
I've tried to use: 我尝试使用:
WebElement root1 = DriverFactory.driver.findElement(By.tagName("downloads-manager"));
WebElement shadowRoot1 = expandRootElement(root1);
WebElement root2 = shadowRoot1.findElement(By.cssSelector("iron-list"));
WebElement shadowRoot2 = expandRootElement(root2);
WebElement root3 = shadowRoot2.findElement(By.cssSelector("downloads-item"));
WebElement shadowRoot3 = expandRootElement(root3);
shadowRoot3.findElement(By.xpath("//div[@id='title-area' and contains(.,'Lviv')]/ancestor::div[@class='controls']/a[@id='preview']")).click();
public WebElement expandRootElement(WebElement element) {
WebElement ele = (WebElement) ((JavascriptExecutor) DriverFactory.driver)
.executeScript("return arguments[0].shadowRoot",element);
return ele;}
In result: 结果:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"downloads-item"}
You have written wrong please refer below code 您写错了,请参考以下代码
By.tagName("iron-list")) By.cssselectorBy.tagName("#downloads-item")); By.tagName(“ iron-list”))By.cssselectorBy.tagName(“#downloads-item”));;
You can use below Xpath 您可以在Xpath下使用
.//*[@id='downloads-list']/downloads-item
or CSS selector 或CSS选择器
#downloads-list>downloads-item
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.