Jak sprawdzić, czy element istnieje w selen

Jak sprawdzić, czy element istnieje w selen

Ten post bada, jak używać selenium Webdriver, aby ustalić, czy element istnieje, czy nie. Korzystając z niektórych prostych i łatwych przykładów poprzez kodowanie, pokazujemy, jak sprawdzić istnienie elementów w selenium Webdriver. Po pierwsze, wyjaśniamy, jakie są ważne sieci w Selenium i jak można znaleźć pierwiastki w selen za pomocą różnych przykładów. Najpierw omówmy, czym są selenium WebRivers i Webelements.

Selenium WebDriver i Selenium Webelements

Selenium WebDriver ułatwił życie programistów dzięki użytecznym funkcjom. Selenium WebDriver odnosi się do powiązań językowych i wielu implementacji kodu kontrolowania przeglądarki. Element HTML nazywa się Webelementem, który umożliwia użytkownikom kontrolowanie zautomatyzowanych testów. Za pośrednictwem WebElements, Selenium WebDriver oferuje dobrze zorganizowane interakcje strony internetowej, takie jak znalezienie elementów, uzyskiwanie właściwości atrybutów, potwierdzanie tekstu w Internecie i nie tylko. Możemy zautomatyzować szeroką gamę środowisk testowych pod kierunkiem selenu.

Polecenie znalezienia elementu w selenium

Obiekt „przez” jest parametrem dla polecenia Find Element, który dostarcza obiekt typu Webelement. Różne techniki lokalizacyjne, takie jak nazwa, identyfikator, nazwa klas, xpath, tekst linku itp. może być używane z obiektem „przez”.

Oto składnia do znalezienia elementu:

Webelement ElementName = sterownik.FindElement (przez.LocatorStrategy („locatorValue”));

Każda z poniższych wartości, w tym nazwa, identyfikator, nazwa klasy, nazwa znacznika, tekst linku, częściowy test linków i XPath, można wykorzystać do strategii lokalizacyjnej.

Każda z tych wartości można wprowadzić do lokalizatora, aby zlokalizować element sieciowy.

Jak sprawdzić, czy element istnieje w selenium

Można przyjąć kilka sposobów sprawdzenia, czy pewien element jest w selenium Webdriver, czy nie. Oto podsumowanie najbardziej typowych sposobów, aby dowiedzieć się, czy elementy istnieją w Webdriver, czy nie.

ElementINElement (…) Drugi getElementsBassName (…)
ElementINElement zawiera (elementName, elementValue) (nazwa, wartość).

Rezultat jest boolean. Jeśli element jest obecny, wytwarza wartość bool prawdziwej. W przeciwnym razie odpowiada fałszu. Podanie nazwy zerowej również daje prawdziwy wynik, a jednocześnie podanie ciągu daje fałszywy wynik.

Teraz, aby zrozumieć tę procedurę, przejdziemy do naszego interfejsu i wykonamy niektóre przykładowe kody.

Przykład 1:

Ten pierwszy przykład jest bardzo podstawowy i prosty, który jest tworzony dla początkujących i doświadczonych programistów. Program zaczyna się od importowania sterownika.Znajdź, aby uzyskać WebElementy z nazwą tagu, aby sprawdzić istnienie elementów internetowych. Podajemy następujące kompletne polecenie, do którego możesz się zapoznać. Następnie wyjaśniamy ten kod w kawałkach, abyś mógł zrozumieć, jakie działanie wykonują.

import org.Openqa.selen.Przez;
import org.Openqa.selen.Webdriver;
import org.Openqa.selen.Webelement;
import org.Openqa.selen.chrom.Chromedriver;
Klasa publiczna Checkifexists
public static void main (string [] args)

System.setProperty („Webdriver.chrom.kierowca", "./sterowniki/chromedriver.exe ”);
WebDriver Driver1 = new Chromedriver ();
sterownik1.Get („http: // demoqa.com/rejestracja/”); sterownik1.zarządzać().Timeouts ().Implixtlewait (2000, TimeUnit.Miliseconds);
Lista dd = sterownik1.FindElements (przez.tagName („Wybierz”));
if (dd.size ())> 0) System.na zewnątrz.println („rozwijanie istnieje”);
w przeciwnym razie


System.na zewnątrz.println („bez rozwijania”);-

Teraz spróbujmy zrozumieć poprzedni kod.

Jeśli chcemy sprawdzić, czy rozwijane istnieją, czy nie, powinniśmy wiedzieć, gdzie rozwijane są obecne w strukturze Down. Jeśli sprawdzisz rozwijanie w konkretnej stronie internetowej, rozwijane są w wyniku wybranych tagów. Zrzut ekranu jest dołączony, aby zobaczyć, gdzie możemy znaleźć kartę Wybierz i rozwijać.

Jeśli na konkretnej stronie internetowej są jakieś wybierz tagi, rozwijane są na stronie. Jeśli nie ma obecnego znacznika wyboru, nie ma obecnych ani istniejących rozwijanych rozwijanych. Musimy więc użyć tej wskazówki:

Lista DD = sterownik.FindElements (przez.TagName („Wybierz”));

Używamy sterownika.Metoda FindElements () w celu ustalenia, czy element jest obecny na stronie internetowej. Jak wiemy, lista Webelements znajduje się przy użyciu parametru „według lokaliatora”, który jest zwracany przez funkcję FINDELENETIONS (). Jeśli element zostanie znaleziony, zwracana jest lista niezerowych internetowych. W przeciwnym razie zwracana jest lista rozmiaru 0. W rezultacie długość listy można wykorzystać do ustalenia, czy wpis jest obecny, czy nie.

Należy pamiętać, że podczas wyszukiwania elementu ta funkcja czeka, aż „niejawne” czekanie zostanie przekazane na sterownik, który podajemy w naszym kodowaniu:

sterownik1.zarządzać().Timeouts ().Implixtlewait (2000, TimeUnit.Miliseconds);

Jeśli wiemy, że element jest natychmiast dostępny na stronie internetowej, możemy zmienić wartość „niejawnego” oczekiwania na jej wartość domyślną po ustawieniu na 0, sprawdzając obecność elementów i przyspieszając proces.

Jeśli umieścisz tylko „Wybierz”, nie będziesz w stanie uzyskać żadnego wyjścia. Przechodzi tylko do metki Select i wskazuje.

To wszystko. Jeśli chcesz sprawdzić, czy upadki istnieją, czy nie, powinieneś przechowywać to wyjście w zmiennej „List Webelement”.

Po wykonaniu kodu otrzymujemy wynik, że „rozwijana istnieje”, jak widać na dostarczonej ilustracji.

Przykład 2:

W poprzednim przykładzie zastosowaliśmy metodę znalezienia elementu według nazwy tagname, aby sprawdzić, czy element rozwijany istnieje, czy nie. Teraz, od tego przykładu, będziesz wiedział, jak znaleźć elementy za pomocą metod próbowania i złapania.

Wykonajmy kod i sprawdźmy, jak go używać:

System.setProperty („Webdriver.gekon.sterownik ”,„/Users/ABC/Desktop/C/dz/biblioteka/xyz ”);
WebDriver Driver1 = nowy FirefoxDriver ();
sterownik1.Get (https: // www.Google.com)
próbować
sterownik1.FindElement (przez.xpath („// input [@id = 'djahvljadhlkgj')))
System.na zewnątrz.printin (element istnieje);

catch (NosuchelemElemException e) System.na zewnątrz.printin („Element nie istnieje);

Aby sprawdzić, czy element istnieje, czy nie, używamy bloku próbowania. Wszystko, co musimy zrobić, to spróbować znaleźć element.

kierowca.FindElement (przez.xpath („// input [@id = 'djahvljadhlkgj']”));

Teraz poprzedni fragment kodu znajduje element za pomocą XPath:

catch (NosuchelemElemException e) System.na zewnątrz.printin („Element nie istnieje);

Teraz, jeśli element nie zostanie znaleziony w bloku połowowym, oznacza to, że na stronie nie ma elementu z tego rodzaju lokalizatorem w tym Xpath. Następnie błąd jest złapany, abyśmy mogli złapać wyjątek.

Po uruchomieniu kodu rzuca błąd „brak takiego elementu”. To właśnie chcemy wyzdrowieć w bloku Catch:

próbować
Drive1r.FindElement (przez.xpath („// input [@id = 'djahvljadhlkgj')))
System.na zewnątrz.printin (element istnieje);

catch (NosuchelemElemException e) System.na zewnątrz.printin („Element nie istnieje);

Zrobiliśmy to, że zrobiliśmy blok próbny. W tym bloku próbnym dowiadujemy się elementu, który chcemy znaleźć za pomocą dowolnego lokalizatora, którego chcemy użyć. Jeśli element zostanie znaleziony, po prostu wykonuje, a oświadczenie mówi, że element istnieje i nigdy nie trafia do bloku połowowego. Jeśli element nie zostanie znaleziony, nie rzuca takiego elementu. Następnie po prostu wykonuje „element nie znalezionego” w bloku catch.

Przykład 3:

W tym przypadku używamy sterownika.Znajdź elementy według ID. Następnie otrzymujemy liczbę tego konkretnego elementu. Jeśli nie jest zero, oznacza to, że element jest obecny. Zawsze wypróbuj elementy znalezienia, a nie element znalezienia. Różnica między nimi polega na tym, że jeśli użyjesz elementu Find, rzuca on wyjątek „brak takiego elementu”. Ale elementy znalezienia nie rzucają tego wyjątku, nawet jeśli element jest obecny, czy nie. Pamiętaj tylko, aby użyć tej metody Znajdź elementy i sprawdź liczbę tej wartości lub tej listy tego elementu. Jeśli liczba wynosi 0, oznacza to, że element nie jest obecny.

if (sterownik1.FindElements (przez.ID („ABC”)).Liczyć!= 0)
konsola.WriteLine („Element jest obecny”);
w przeciwnym razie
konsola.WriteLine („Element nie jest obecny”);

W tym kodzie otrzymujemy liczbę 0, co oznacza, że ​​element nie jest obecny.

Wniosek

Omówiliśmy o użyciu kodowania w celu ustalenia, czy elementy w selenium istnieją, czy nie. Idea parametru do znalezienia polecenia elementu, która zwraca obiekt typu Webelement, jest pokazany tutaj z przykładów. W tym artykule rozumiemy koncepcję znalezienia istnienia elementów internetowych w selenium Webdrivers przy użyciu różnych metod. Możesz odwołać się do tego artykułu od początku do końca, aby lepiej zrozumieć całą koncepcję.