Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium w C# 24. Pobieranie informacji o elementach cz.2

W tej lekcji kontynuujemy temat pobierania informacji o elementach. Na warsztat weźmiemy pobieranie wartości CSS, atrybutów i właściwości JavaScript oraz szukanie elementów w elemencie.

Pobieranie informacji o elementach w C#: linki i materiały

Pobieranie atrybutu

Atrybutem danego elementu może być np. klasa, id czy type z tych najbardziej popularnych, ale może się tam znaleźć właściwie cokolwiek. Jeżeli nie pamiętasz czym są atrybuty, wróć proszę do lekcji o znacznikach i konsoli deweloperskiej. Tam tłumaczę dokładniej co się może znaleźć w elemencie.

W Selenium można pobrać wartość dowolnego atrybutu i możemy zrobić to korzystając z metody GetAttribute().

Ukryta treść

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

Pobieranie wartości CSS

Wartości CSS odnoszą się do stylów, które aplikują do danego elementu. Te style można sobie podejrzeć w zakładce „Styles” w konsoli developerskiej po zaznaczeniu elementu. W Selenium możemy sobie wyciągnąć wartość dowolnego stylu, np. kolory tła, podobnie jak robimy to w przypadku atrybutów. Tym razem jednak użyjemy metody GetCssValue().

Ukryta treść

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

Na filmie zobaczysz też jak sobie poradzić z tym, że z tej metody dostajemy kolor w RGBA, a znamy go w Hex.

Pobieranie właściwości JavaScript

Na filmie zobaczysz dokładniej czym mogą być te właściwości, do czego mogą nam być potrzebne i jak sobie je wcześniej podejrzeć zanim zaczniemy je pobierać za pomocą Selenium. Natomiast w Selenium możemy pobrać wybraną właściwość korzystając z metody GetProperty().

Ukryta treść

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

Szukanie elementu (albo elementów) w elemencie

O tym wspomniałam już bardzo krótko przy okazji lekcji dotyczącej XPatha, bo właśnie tutaj może pojawić się problem jeżeli nie poprzedzimy naszego XPatha kropką.

Czasami może być nam wygodniej wyodrębnić najpierw jeden element, a później „w środku”, czyli wśród jego potomków, w takim właśnie ograniczonym fragmencie dokumentu HTML, szukać innego elementu niż budować lokator bezpośrednio dla niego. Może być tak np. wtedy gdy już i tak mamy wyodrębnionego przodka, bo potrzebowaliśmy go w testach. Możemy go wtedy użyć ponownie, żeby wyszukać jego potomka bez budowania skomplikowanego (ale tez nie zawsze) lokatora.

Ukryta treść

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

Przykład, po którym bardziej Ci się rozjaśni o czym mówię, pokazuję na filmie.

Kod z lekcji

Ukryta treść

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

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.

  1. Próbuję pobrać tekst "OPEN" który umiejscowiony jest jak niżej po divie (taki "zrzut" tekstowy z zakładki Elementy z narzędzi developerskich)

    <div class="mat-chip-ripple"></div>
    Open
    

    Jaki selektor powinienem zastosować aby pobrać taki tekst ?
    Obecnie gdy próbuję wywołać driver.findelement za pomocą poniższego xpath
    ("//div/mat-chip/text()")

    to wówczas wyrzucany jest wyjątek
    Failed: invalid selector: The result of the xpath expression "//div/mat-chip/text()" is: [object Text]. It should be an element.

    Jak powinienem napisać selektor aby pozbyć się takiego wyjątku ?

    Odpowiedz