目前,我正在努力使我的渐进式网络应用程序使用selenium测试自动化。我所有的元素来自不同的影子室。 像
//This function will return the element inside shadow root
public WebElement GetShadowRoot(WebElement host) {
WebElement shadowRoot = (WebElement) ((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot", host);
return shadowRoot;
}
WebElement MainHost = driver.findElement(By.cssSelector("vrs-
app[page='refine']"));
WebElement shadow1 = GetShadowRoot(MainHost);
WebElement host2 = shadow1.findElement(By.cssSelector("vrs-refine"));
WebElement shadow2 = GetShadowRoot(host2);
System.out.println(shadow2);
WebElement host3 = shadow2.findElement(By.cssSelector("vrs-list-
generator"));
WebElement shadow3 = GetShadowRoot(host3);
System.out.println(shadow3);
WebElement host4 = shadow3.findElement(By.cssSelector("vrs-single-property-tile:first-child"));
WebElement shadow4 = GetShadowRoot(host4);
使用此方法,我通过cssSelector获取HTML元素。
这里我遇到了CSS选择器问题vrs-single-property-tile:first-child"
我有几个相同名称的影子根,只有id不同.And ID动态变化。
在这里,我想采取这个单独的瓷砖并打印属性标题和价格
这是我的临时网址,以便您可以了解相关信息
我的目标是访问此元素shadow3.findElements(By.cssSelector("#gtmTitle > h3"));
任何类型的帮助将不胜感激。