Проект, над которым я работал, использует полимерную среду Google, которая создает теневые элементы DOM. При попытке создать автоматический тест с использованием Selenium я застрял, поскольку инструмент Selenium не смог найти элементы под теневым DOM. В результате поиска в Google я обнаружил, что JavascriptExecutor можно использовать в качестве решения. Однако каждый раз, когда я пытаюсь получить доступ к дереву Shadow DOM одна и та же ошибка случается некоторое время, и некоторое время ее работа отлично . Я не могу понять, что происходит. Это дерево DOM, к которому я пытаюсь получить доступ,

Код, который я использую для доступа,
@Test
public void testGetText_FromShadowDOMElements() {
WebElement x1 = driver.findElement(By.tagName("main-app"));
WebElement y1 = expandRootElement(x1);
System.out.println(x1.getTagName()+"----------------- "+y1);
WebElement x2 = y1.findElement(By.cssSelector("popup-dialog#popup-dialog.popup-dialog"));
WebElement y2 = expandRootElement(x2);
System.out.println(x2.getTagName()+"---------------- "+y2);
WebElement x3 = y2.findElement(By.tagName("login-dialog"));
WebElement y3 = expandRootElement(x3);
System.out.println(x3.getTagName()+"---------------- "+y3);
}
//Returns WebElement
public WebElement expandRootElement(WebElement element) {
//Initializing JavaScriptExecutor
JavascriptExecutor expandShadowElement = (JavascriptExecutor) driver;
//Expanding Shadow Root
WebElement expandedRootElement = (WebElement)
expandShadowElement.executeScript("return arguments[0].shadowRoot", element);
return expandedRootElement;
}
Это ошибка, которую я получаю,
Unable to locate element: {"method":"css selector","selector":"login\-dialog"}