Определение локаторов для item в Combobox (Selenide + Shadow DOM + Vaadin)

Проблема (Вопрос) заключается …
На новом проекте (написан на vaadin) не получается определить локаторы для пунктов выпадающего списка, так как они находятся в shadow-root. Есть ли возможность побороть эту проблему методами Selenide?


Я попытался сделать …

У меня получилось …

У меня не получилось …

Код

code

Логи и ошибка вот такая …

Версии ОС и софта следующие …

Мы думали добавить в Selenide поддерджку shadow-root, но пока неочевидно, так ли уж она нужна.

Потому, что и без всякой поддержки это легко делается через Selenide.executeJavascript():
https://www.seleniumeasy.com/selenium-tutorials/accessing-shadow-dom-elements-with-webdriver

Спасибо! Данный ресурс уже смотрел, пока не помогло, до ходит до третьего рута и робот уже не может определить элемент. Надо посмотреть предложенный метод.

а есть примеры использования executeJavascript() ?

Да, см. код и тесты самого селенида.

использование в Selenide метода executeJavaScript() пока не увенчались успехом. Компилятор выдает ошибку java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to com.codeborne.selenide.SelenideElement.
Возможно что то не так делаю.

public SelenideElement expandRootElement(SelenideElement element) {
    SelenideElement ele = Selenide.executeJavaScript("return arguments[0].shadowRoot", element);
    return ele;
}

Это как раз легко решается.

public SelenideElement expandRootElement(SelenideElement element) {
    WebElement ele = Selenide.executeJavaScript("return arguments[0].shadowRoot", element);
    return $(ele);
}

Помогло. С начало неправильно определил первый рут, но потом разобрался. Спасибо за помощь!