Как автоматизировать Shadow DOM с несколькими теневыми корнями с помощью платформы Selenium JavaCSS

Разбираемся в CSS
Anonymous
Как автоматизировать Shadow DOM с несколькими теневыми корнями с помощью платформы Selenium Java

Сообщение Anonymous »

2.Я также использую платформу Selenium Java для автоматизации тестирования, и недавно приложение было обновлено до Shadow DOM с использованием шафрана. Мы попытались автоматизировать использование исполнителя javascript querySelector. Приложение имеет более 20 теневых корней на одной странице, и большинство теневых корней являются дочерними по отношению к предыдущему корню. Таким образом, чтобы идентифицировать элемент, нам нужно пройти через множество корней, как в document.querySelector('root1').shadowRoot.querySelector('root2')....как и мудро, до n-го корня, чтобы найти элемент.

Код: Выделить всё

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement shadowHost = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".PersonaSelectionPage-button")));

SearchContext shadowRoot = shadowHost.getShadowRoot();
WebElement controlBtn = shadowRoot.findElement(By.cssSelector(".control"));

// Use JS to click the actual element
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", controlBtn);
Thread.sleep(4000);

Не могли бы вы рассказать о других решениях для автоматизации Shadow DOM с использованием селена.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ava-framew

Вернуться в «CSS»