Shadow DOM w Selenium 4

Interesuje Cię ten kurs?

Zapisz się na listę, a wyślę Ci szczegóły i informację jak dołączyć 👇 

W Selenium 4 mamy możliwość wyszukiwania elementów w Shadow DOM bez użycia JavaScriptu. Jest to jednak opcja ograniczona tylko do kilku przeglądarek oraz selektorów CSS jako strategii lokalizacjnej elementów.

Uwaga: ta funkcjonalność działa tylko dla przeglądarek opartych o Chromium (Chrome, Edge). Wyszukiwanie elementów w Shadow DOM zadziała tylko z selektorami CSS.

Do zaprezentowania działania tej funkcjonalności użyjemy na strony, na której umieściłam elementy w Shadow DOM. My zajmiemy się tym pierwszym inputem. Spróbujemy do niego wpisać wartość.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Ponieważ kod ten będzie niemal identyczny dla Javy i C# zajmiemy się jednym i drugim od raz.

Fragment HTMLa, który nas interesuje wygląda tak:

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

To, co musimy najpierw zrobić, to zlokalizować element zaraz nad “shadow-root”. Chodzi o diva z id=host. Zmienną reprezentującą ten element nazwiemy shadowHost. Następnie za pomocą metody getShadowRoot() w Javie lub GetShadowRoot() w C# dostaniemy się do shadow-root.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Mając shadow-roota możemy się już teraz dostać do elementów wewnątrz niego. W naszym przykłądzie przekażemy tekst “Test” do pola.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.