top 25 selenium webdriver commands that you should know
Najważniejsze polecenia Selenium WebDriver - fenomenalny przewodnik dla testerów automatyzacji
Selenium WebDriver to jedno z najpopularniejszych narzędzi do automatyzacji witryn internetowych typu open source. Większość moich kolegów testerów automatyzacji preferuje połączenie WebDriver z Javą.
W tym samouczku omówię 25 rutynowo używanych poleceń Selenium WebDriver wraz z ich odpowiednią składnią i prostymi przykładami ułatwiającymi zrozumienie.
Czego się nauczysz:
- Rodzaje poleceń w WebDriver
- 7 najważniejszych poleceń selenu ze szczegółami
- Lista 25 bardziej popularnych poleceń i przykładów WebDriver
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) znajdź element (przez, przez) i kliknij ()
- # 4) isEnabled ()
- # 5) findElement (By, by) z sendKeys ()
- # 6) findElement (By, by) z getText ()
- # 7) Prześlij ()
- # 8) findElements (By, by)
- # 9) findElements (By, by) with size ()
- # 10) pageLoadTimeout (czas, jednostka)
- # 11) niejawnieWait ()
- # 12) untill () i visibilityOfElementLocated ()
- # 13) do () i alertIsPresent ()
- # 14) getTitle ()
- # 15) Wybierz
- # 16) nawiguj ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () i accept (), odrzucenie () i sendKeys ()
- # 21) getWindowHandle () i getWindowHandles ()
- # 22) getConnection ()
- # 23) WTEDY
- # 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
- # 25) zamknij () i zakończ ()
- Wniosek
- rekomendowane lektury
Rodzaje poleceń w WebDriver
w ostatni tutorial Selenium , omówiliśmy różne rodzaje wpisów napotkane podczas testowania aplikacji internetowych i efektywnych sposobów ich obsługi. Omówiliśmy obszernie oba rodzaje alertów, tj. „Alerty internetowe” i „alerty okienne”. Zapoznaliśmy się również z innym narzędziem opartym na języku Java, nazwanym „Robot Class”, które obsługuje wyskakujące okienka systemu Windows.
Postęp w przód ta seria samouczków Selenium WebDriver , będziemy naciskać różne powszechnie i rutynowo używane polecenia Selenium WebDriver . Dokładnie i pokrótce omówimy każde z tych poleceń Selenium, abyś był w stanie skutecznie używać tych poleceń w każdej sytuacji.
Każdy plik roboczy Java do automatyzacji rozpoczyna się od utworzenia odwołania do przeglądarki internetowej, której chcemy używać, jak wspomniano w poniższej składni.
Istnieje kilka metod dostępnych z poziomu interfejsu Webdriver. Dostęp do tych metod uzyskuje się za pomocą zmiennej instancji kierowca w prostym formacie driver.methodName (); . Wszystkie te projekty automatyzacji obejmują wywoływanie tych metod oraz porównywanie i ocenę tego, co faktycznie zwracają.
Mówiąc prościej, możemy ogólnie sklasyfikować polecenia Webdrivera jako:
- Polecenia przeglądarki,
- Uzyskaj polecenia,
- Polecenia nawigacyjne,
- Polecenia Webelement,
- Polecenia akcji i
- Polecenia wynikowe.
Z kontekstu testowania ręcznego wynik testu, PASS lub FAIL, jest określany za pomocą poleceń Wynik, które zwykle porównują oczekiwane i rzeczywiste wyniki, a reszta to kroki Przypadku testowego.
7 najważniejszych poleceń Selenium ze szczegółami
Aby mieć ogólne pojęcie, omówilibyśmy następujące polecenia Selenium WebDriver i ich różne wersje:
- otrzymać() metody
- Lokalizowanie linków według tekst linku () i częścioweLinkText ()
- Wybieranie wielu elementów z listy rozwijanej
- Przesłanie formularza
- Obsługa ramek iframe
- blisko() i porzucić() metody
- Obsługa wyjątków
# 1) Metody get ()
Polecenie WebDriver | Stosowanie |
---|---|
getAttribute () | • Polecenie służy do pobierania wartości określonego atrybutu • Polecenie wymaga pojedynczego parametru łańcuchowego, który odnosi się do atrybutu, którego wartość chcemy poznać i jako wynik zwraca wartość ciągu. driver.findElement (By.id ('findID')). getAttribute ('wartość'); |
otrzymać() | • Polecenie uruchamia nową przeglądarkę i otwiera podany adres URL w instancji przeglądarki • Polecenie przyjmuje pojedynczy parametr typu łańcuchowego, którym jest zwykle adres URL testowanej aplikacji • Dla użytkowników Selenium IDE, polecenie może wyglądać bardzo podobnie do polecenia open driver.get ('https://google.com'); |
getClass () | Polecenie służy do pobierania obiektu Class która reprezentuje klasę wykonawczą tego obiektu driver.getClass (); |
getCurrentUrl () | • Polecenie służy do pobierania adresu URL strony internetowej, do której użytkownik aktualnie uzyskuje dostęp • Polecenie nie wymaga żadnego parametru i zwraca wartość ciągu driver.getCurrentUrl (); |
getPageSource () | • Polecenie służy do pobierania źródła strony strony internetowej, do której użytkownik aktualnie uzyskuje dostęp • Polecenie nie wymaga żadnego parametru i zwraca wartość ciągu • Polecenie może być używane z różnymi operacjami na łańcuchach, takimi jak zawiera (), aby sprawdzić obecność określonej wartości ciągu boolean result = driver.getPageSource (). zawiera ('Ciąg do znalezienia'); |
getTitle () | • Polecenie służy do pobierania tytułu strony internetowej, nad którą aktualnie pracuje użytkownik. Jeśli strona internetowa nie ma tytułu, zwracany jest ciąg pusty • Polecenie nie wymaga żadnego parametru i zwraca skróconą wartość ciągu Tytuł ciągu = driver.getTitle (); |
getText () | • Polecenie służy do pobierania wewnętrznego tekstu określonego elementu WWW • Polecenie nie wymaga żadnego parametru i zwraca wartość ciągu • Jest to również jedno z szeroko używanych poleceń do weryfikacji wyświetlanych komunikatów, etykiet, błędów itp na stronach internetowych. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Polecenie służy do radzenia sobie z sytuacją, gdy mamy do czynienia z więcej niż jednym oknem. • Polecenie pomaga nam przełączyć się do nowo otwartego okna i wykonać akcje w nowym oknie. Użytkownik może również przełączyć się z powrotem do poprzedniego okna, jeśli sobie tego życzy. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). okno (winHandleBefore); |
getWindowHandles () | • Polecenie jest podobne do polecenia „getWindowHandle ()” z subtelną różnicą, że pomaga radzić sobie z wieloma oknami, tj. Gdy mamy do czynienia z więcej niż dwoma oknami. |
Fragment kodu dla „getWindowHandles ()” znajduje się poniżej:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Lokalizowanie linków przez linkText () i częścioweLinkText ()
Wejdźmy na „google.com” i „abodeqa.com”, używając tekst linku () i częścioweLinText () metody WebDriver.
Dostęp do wyżej wymienionych łączy można uzyskać za pomocą następujących poleceń:
kierowca .findElement (By.linkText ( 'Google' )).Kliknij();
kierowca .findElement (By.linkText ( AbodeQA )).Kliknij();
Polecenie znajduje element za pomocą tekstu linku, a następnie kliknij ten element, a tym samym użytkownik zostanie przekierowany na odpowiednią stronę.
Dostęp do wyżej wymienionych łączy można również uzyskać za pomocą następujących poleceń:
kierowca .findElement (By.partialLinkText ( 'Maź' )).Kliknij();
kierowca .findElement (By.partialLinkText ( 'siedziba' )).Kliknij();
Powyższe dwa polecenia wyszukują elementy na podstawie podłańcucha linku podanego w nawiasie, a zatem partsLinkText () znajduje element web z określonym podciągiem, a następnie klika go.
# 3) Wybieranie wielu elementów z listy rozwijanej
Istnieją przede wszystkim dwa rodzaje menu:
- Lista rozwijana pojedynczego wyboru : Lista rozwijana umożliwiająca wybranie tylko jednej wartości naraz.
- Lista rozwijana wielokrotnego wyboru : Lista rozwijana umożliwiająca jednoczesne wybranie wielu wartości.
Rozważ poniższy kod HTML aby wyświetlić listę rozwijaną, w której można jednocześnie wybrać wiele wartości.
Red Green Yellow Grey
Poniższy fragment kodu ilustruje wielokrotne wybory w menu rozwijanym.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Przesłanie formularza
Większość lub prawie wszystkie strony internetowe zawierają formularze, które należy wypełnić i przesłać podczas testowania aplikacji internetowej. Użytkownik może natknąć się na kilka typów formularzy, takich jak formularz logowania, formularz rejestracyjny, formularz przesyłania plików, formularz tworzenia profilu itp.
W WebDriver, użytkownik jest wykorzystywany za pomocą metody stworzonej specjalnie w celu przesłania formularza. Użytkownik może również użyć metody kliknij, aby kliknąć przycisk przesyłania, zamiast przycisku przesyłania.
Zapoznaj się z poniższym fragmentem kodu z powyższym formularzem „nowego użytkownika”:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Tak więc, gdy tylko formant programu znajdzie metodę przesyłania, lokalizuje element i wyzwala Zatwierdź() metody na znalezionym elemencie sieci.
# 5) Obsługa ramek iframe
Podczas automatyzacji aplikacji internetowych mogą wystąpić sytuacje, w których będziemy musieli radzić sobie z wieloma ramkami w oknie. Dlatego twórca skryptu testowego jest zobowiązany do przełączania się między różnymi ramkami lub ramkami iframe.
Akronim ramki wbudowanej, jak iframe, służy do wstawiania innego dokumentu w bieżącym dokumencie HTML lub po prostu strony internetowej na innej stronie internetowej poprzez włączenie zagnieżdżenia.
Rozważ następujący kod HTML zawierający element iframe na stronie internetowej:
Software Testing Help - iframe session
Powyższy kod HTML ilustruje obecność osadzonego elementu iframe w innym elemencie iframe. Tak więc, aby mieć dostęp do podrzędnego elementu iframe, użytkownik musi najpierw przejść do nadrzędnego elementu iframe. Po wykonaniu wymaganej operacji od użytkownika może być wymagane przejście z powrotem do nadrzędnego elementu iframe w celu zajęcia się innym elementem strony internetowej.
Jest to niemożliwe, jeśli użytkownik próbuje uzyskać bezpośredni dostęp do podrzędnego elementu iframe bez przechodzenia najpierw do nadrzędnego elementu iframe.
Wybierz element iframe według identyfikatora
kierowca .switchTo (). frame ( ' ID ramy ' );
Lokalizowanie iframe za pomocą tagName
Podczas lokalizowania elementu iframe użytkownik może napotkać pewne problemy, jeśli elementowi iframe nie zostaną przypisane standardowe właściwości. Zlokalizowanie ramki i przełączenie się na nią staje się złożonym procesem. Aby rozwiązać tę sytuację, użytkownik jest wykorzystywany do zlokalizowania elementu iframe przy użyciu metody tagName, podobnie jak w przypadku innych elementów sieci Web w WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName („iframe”). get (0));
Powyższe polecenie lokalizuje pierwszy element WWW z określonym tagName i przełącza się na ten element iframe. „Get (0) służy do lokalizowania elementu iframe z wartością indeksu”. Tak więc, w liniach z naszym kodem HTML, powyższa składnia kodu prowadziłaby kontrolkę programu do przełączenia się na „ParentFrame”.
Lokalizowanie iframe za pomocą indeksu:
a) ramka (indeks)
driver.switchTo (). frame (0);
b) ramka (nazwa ramki)
driver.switchTo (). frame („nazwa ramki”);
c) ramka (element WebElement)
Wybierz Okno nadrzędne
driver.switchTo (). defaultContent ();
Powyższe polecenie przenosi użytkownika z powrotem do oryginalnego okna, tj. Z obu ramek iframe.
# 6) metody close () i quit ()
Istnieją dwa rodzaje poleceń w programie WebDriver do zamykania instancji przeglądarki internetowej.
a) zamknij () : Metoda close () programu WebDriver zamyka okno przeglądarki internetowej, nad którym aktualnie pracuje użytkownik, lub możemy również powiedzieć, że okno, do którego aktualnie uzyskuje dostęp WebDriver. Polecenie nie wymaga żadnego parametru ani nie zwraca żadnej wartości.
b) wyjść () : W przeciwieństwie do metody close () metoda quit () zamyka wszystkie okna, które program otworzył. Podobnie jak metoda close (), polecenie nie wymaga żadnego parametru ani nie zwraca żadnej wartości.
Zapoznaj się z poniższymi fragmentami kodu:
kierowca .blisko(); // zamyka tylko jedno okno, do którego aktualnie uzyskuje dostęp instancja WebDriver
kierowca .porzucić(); // zamyka wszystkie okna, które zostały otwarte przez instancję WebDriver
# 7) Obsługa wyjątków
Wyjątkami są warunki lub sytuacje, które nieoczekiwanie wstrzymują wykonywanie programu.
Przyczynami takich warunków mogą być:
- Błędy wprowadzone przez użytkownika
- Błędy generowane przez programistę
- Błędy generowane przez zasoby fizyczne
W związku z tym, aby poradzić sobie z tymi nieoczekiwanymi warunkami, opracowano koncepcję obsługi wyjątków.
W odniesieniu do kodu Java, który implementujemy podczas automatyzacji aplikacji internetowej, można umieścić w bloku, który jest w stanie zapewnić mechanizm obsługi w przypadku błędnych warunków.
Łapanie wyjątku
Aby złapać wyjątek, używamy poniższego bloku kodu
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Jeśli jakikolwiek wyjątek wystąpi w bloku try / bloku chronionym, wówczas wykonanie kontroluje blok catch dla pasującego typu wyjątku i przekazuje wyjątek do niego bez przerywania wykonywania programu.
Wiele bloków połowowych
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
W powyższym kodzie wyjątek prawdopodobnie zostanie przechwycony w pierwszym bloku catch, jeśli typ wyjątku jest zgodny. Jeśli typ wyjątku nie jest zgodny, wyjątek jest przenoszony do drugiego bloku catch i trzeciego bloku catch itd., Aż zostaną odwiedzone wszystkie bloki catch.
Warunki WebDriver i obsługa wyjątków
Kiedy dążymy do zweryfikowania obecności dowolnego elementu na stronie internetowej za pomocą różnych poleceń warunkowych programu WebDriver, WebDriver zakłada, że element sieciowy jest obecny na stronie internetowej. Jeśli element sieci Web nie jest obecny na stronie internetowej, polecenia warunkowe generują wyjątek „NoSuchElementPresentException”. Dlatego, aby uniknąć takich wyjątków od zatrzymywania wykonywania programu, używamy mechanizmów obsługi wyjątków. Zapoznaj się z poniższym fragmentem kodu:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Lista 25 bardziej popularnych poleceń i przykładów WebDriver
Poniżej znajduje się lista 25 najczęściej używanych poleceń Webdrivera, które każdy tester automatyzacji musi znać.
Przyjrzyjmy się szczegółowo tym poleceniom.
Dalsza lektura => Samouczek Selenium WebDriver
# 1) get ()
Polecenie używające get () do otwierania adresu URL w bieżącej przeglądarce.
Poniższe polecenie spowoduje otwarcie określonego adresu URL „https://www.softwaretestinghelp.com” w przeglądarce.
Składnia:
driver.get('https://www.softwaretestinghelp.com');
Wyjaśnienie:
- Przejdź do adresu URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Polecenie używające getCurrentUrl (), aby sprawdzić, czy adres URL jest poprawny.
Poniższe polecenie pobiera bieżący adres URL w formacie ciągu.
Składnia:
najlepszy program do czyszczenia i optymalizacji komputera za darmo
driver.getCurrentUrl();
Zwykle używamy tej metody w poleceniach, aby sprawdzić, czy przeszliśmy na właściwą stronę zgodnie z oczekiwaniami. W tym celu musimy użyć Assert, jak pokazano poniżej Przykład .
Składnia:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Gdzie oczekiwanoUrl jest oczekiwanym adresem URL w formacie ciągu.
Wyjaśnienie:
- Sprawdź i sprawdź, czy załadowany adres URL pozostaje taki sam i czy została załadowana właściwa strona.
# 3) znajdź element (przez, przez) i kliknij ()
findElement (przez, przez) i kliknij (), aby kliknąć dowolny element strony internetowej.
Metoda findElement (By, by) wyszukuje i lokalizuje pierwszy element na bieżącej stronie, który spełnia kryteria podane jako parametr. Ta metoda jest zwykle używana w poleceniach do symulacji działań użytkownika, takich jak kliknięcie, przesłanie, wpisanie itp.
Poniższe polecenie wyszukuje i lokalizuje pierwszy element na stronie o identyfikatorze „submit1” i klika go, jeśli nie jest objęty.
Składnia:
driver.findElement(By.id('submit1')).click();
Element można zlokalizować za pomocą ID , Nazwa , Klasa Nazwa , Nazwa znacznika , Tekst linku & Częściowy tekst linku , Selektor CSS i Ścieżka X .
Wyjaśnienie:
- Poszukaj wymaganego przycisku Prześlij.
- Kliknij przycisk.
Poniższe polecenie wybiera element z pola listy.
Składnia:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Wyjaśnienie:
- Wyszukaj i zlokalizuj element listy według identyfikatora „nazwa1”.
- Kliknij ten element.
# 4) isEnabled ()
isEnabled (), aby sprawdzić, czy element jest włączony, czy wyłączony w Selenium WebDriver.
Aby sprawdzić, czy dany element jest włączony na stronie internetowej, używamy metody isEnabled ().
Składnia:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Wyjaśnienie:
- Znajduje element na stronie internetowej zgodnie z xpath i sprawdza, czy element jest włączony.
# 5) findElement (By, by) z sendKeys ()
findElement (By, by) z sendKeys () do wpisywania pól formularza.
Formularz sprawdza poprawność poprzez wprowadzanie różnych danych wejściowych użytkownika, które są często wymagane w testowaniu automatyzacji. Używamy findElement (By, by), aby zlokalizować pola i sendKeys (), aby wpisać zawartość w edytowalne pole.
Poniższe polecenie używa lokalizatora nazwy, aby znaleźć pole formularza i wpisuje w nim „Aaron”.
Składnia:
driver.findElement(By.name('name')).sendkeys('Aaron');
Wyjaśnienie:
- Poszukaj wymaganego pola nazwy w formularzu.
- Wpisz w nim wartość „Aaron”.
# 6) findElement (By, by) z getText ()
findElement (By, by) z getText () do przechowywania wartości docelowego elementu internetowego.
GetText () to metoda, która pobiera wewnętrzny tekst elementu web. Pobierz tekst to tekst wewnątrz tagów HTML.
Poniższy kod znajduje element z tagName „select” i pobiera tekst wewnątrz tagu i zapisuje go w rozwijanej liście zmiennych. Teraz String dropDown może być używany do dalszych działań w programie.
Składnia:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Wyjaśnienie:
- Poszukaj wymaganego pola w formularzu, które ma tagName „dropdown1”.
- Umieść tekst w jego tagu HTML.
- Zapisz tekst w obiekcie String „DropDown”.
# 7) Prześlij ()
Prześlij (), aby przesłać formularz internetowy.
Metoda click (), którą omówiliśmy powyżej, może być używana do klikania dowolnych łączy lub przycisków. Prześlij () jest lepszą alternatywą dla click (), jeśli klikany element to przycisk przesyłania. Przycisk przesyłania znajduje się wewnątrz tagu HTML „formularz”, a typ przycisku to „prześlij” (nie „przycisk”).
Funkcja submit () ułatwia życie, automatycznie znajdując przycisk i metodę, którą można dołączyć do dowolnego innego pola, takiego jak imię i nazwisko lub adres e-mail. W przypadku kliknięcia musimy skorzystać z metody findElement (By, by) i określić odpowiednie lokalizatory.
W niektórych scenariuszach, w których akcja jest wykonywana za pomocą elementów innych niż przycisk, funkcja submit () działa, a funkcja click () nie.
Składnia:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Wyjaśnienie:
- Znajdź element w podanej ścieżce x o nazwie „komentarze”.
- Prześlij formularz.
# 8) findElements (By, by)
findElements (By, by), aby uzyskać listę elementów sieci.
Czasami możemy chcieć wydrukować lub wykonać jakąś czynność na liście elementów sieci, takich jak łącza lub pola wejściowe na stronie internetowej. W takim przypadku używamy findElements (By, by).
Składnia:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Wyjaśnienie:
- Lista wszystkich elementów sieci z określoną ścieżką xpath jest przechowywana na liście elementów sieciowych allChoices.
# 9) findElements (By, by) with size ()
findElements (By, by) z size () w celu sprawdzenia, czy element jest obecny.
Funkcja findElements (By, by) może służyć do sprawdzania, czy element faktycznie występuje na stronie internetowej.
Poniższe polecenie jest używane, jeśli chcemy sprawdzić, czy na stronie znajduje się element z określonym lokalizatorem. Jeśli size ()! = 0, to element jest obecny.
Składnia:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Wyjaśnienie:
- Element wyszukiwania jest określony w xpath z identyfikatorem „checkbox2”.
- W zależności od rozmiaru listy elementów Boolean checkIfElementPresent zostanie ustawiony na TRUE lub FALSE.
# 10) pageLoadTimeout (czas, jednostka)
pageLoadTimeout (czas, jednostka), aby ustawić czas ładowania strony.
Czasami z powodu problemów z serwerem lub opóźnień w sieci ładowanie strony może zająć więcej czasu niż zwykle. Może to spowodować błąd w programie. Aby tego uniknąć, ustawiamy czas oczekiwania i pageLoadTimeout () jest jedną z takich metod. Zwykle następuje to po poleceniu get ().
Składnia:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Wyjaśnienie:
- Poczekaj 500 sekund na załadowanie strony.
# 11) niejawnieWait ()
implicitlyWait (), aby ustawić czas oczekiwania przed wyszukaniem i zlokalizowaniem elementu WWW.
Co się stanie, jeśli Webdriver spróbuje zlokalizować element przed załadowaniem strony internetowej i pojawieniem się elementu? Zostanie wyrzucony NoSuchElementExeption. Aby tego uniknąć, możemy dodać polecenie niejawnego czekania przez określony czas przed zlokalizowaniem elementu.
Składnia:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Wyjaśnienie:
- Niejawnie poczekaj 1000 sekund przed wykonaniem następnego wiersza kodu.
# 12) untill () i visibilityOfElementLocated ()
untill () z WebdriverWait i visibilityOfElementLocated () z ExpectedConditions, aby jawnie czekać, aż element będzie widoczny na stronie internetowej.
Aby obsłużyć przypadki, w których element zajmuje zbyt dużo czasu, aby był widoczny na stronie internetowej oprogramowania, zastosowanie niejawnego oczekiwania staje się trudne. W takim przypadku możemy napisać komentarz, aby poczekać, aż element pojawi się na stronie. To polecenie używa kombinacji metody till () z klasy WebdriverWait i metody visibilityOfElementLocated () z klasy ExpectedConditions.
Składnia:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Wyjaśnienie:
- Pierwsza linia mówi, ile czasu należy czekać, czyli 10 sekund.
- Drugi warunek określa oczekiwany stan, na który należy czekać. Tutaj jest to element z id'name ”we wspomnianej ścieżce xpath.
# 13) do () i alertIsPresent ()
untill () z WebdriverWait i alertIsPresent () z ExpectedConditions, aby jawnie czekać, aż pojawi się alert.
W niektórych scenariuszach musimy poczekać na alerty, aby kontynuować test. W tym przypadku używamy polecenia wykorzystującego metodę till () z klasy WebdriverWait oraz metodę alertIsPresent () z klasy ExpectedConditions.
Zobacz poniższe polecenie:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Wyjaśnienie:
- Pierwsza linia mówi, ile czasu należy czekać - czyli 10 sekund.
- Drugi warunek określa oczekiwany stan, na który należy czekać. Tutaj jest wyskakujące okienko z ostrzeżeniem.
# 14) getTitle ()
getTitle (), aby pobrać tytuł strony w webdriverze Selenium.
Składnia:
String title = driver.getTitle(); System.out.println(title);
Jest to zwykle używane do drukowania tytułu w dziennikach wyjściowych.
Wyjaśnienie:
- Uzyskaj tytuł strony internetowej i zapisz go w tytule obiektu String.
- Wydrukuj wartość przechowywaną w tytule w dziennikach wyjściowych.
# 15) Wybierz
Wybierz klasę do wybierania i odznaczania wartości z listy rozwijanej w Selenium WebDriver.
Często mamy scenariusze związane z rozwijaniem. Do obsługi tego służą metody z klasy Select. W zależności od scenariusza możemy użyć selectByVisibleText (), selectByValue () lub selectByIndex ().
Składnia:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Wyjaśnienie:
- Znajdź listę rozwijaną, używając jej identyfikatora „wybierz”.
- Wybierz widoczny tekst „Apple” z listy rozwijanej.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Wyjaśnienie:
- Znajdź listę rozwijaną, używając jej identyfikatora „wybierz”.
- Wybierz tekst z wartością „Apple” z listy rozwijanej.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Wyjaśnienie:
- Znajdź listę rozwijaną, używając jej identyfikatora „wybierz”.
- Wybierz rozwijaną pozycję z wartością indeksu „1” z listy rozwijanej (Druga pozycja).
Podobnie jak w przypadku wyboru, możemy odznaczyć wartości z listy rozwijanej za pomocą podobnych poleceń.
Sprawdź polecenia:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Wyjaśnienie:
- Znajdź menu rozwijane, używając jego identyfikatora „wybierz”.
- Odznacz widoczny tekst „Apple” z listy rozwijanej.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Wyjaśnienie:
- Znajdź menu rozwijane, używając jego identyfikatora „wybierz”.
- Usuń zaznaczenie tekstu z wartością „Apple” z listy rozwijanej.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Wyjaśnienie:
- Znajdź menu rozwijane, używając jego identyfikatora „wybierz”.
- Usuń zaznaczenie rozwijanej pozycji z wartością indeksu „1” z listy rozwijanej (druga pozycja).
navigate (), aby nawigować między adresami URL.
Często spotykamy się ze scenariuszami, w których moglibyśmy chcieć przejść z adresu URL docelowego, a następnie przejść wstecz lub dalej. W takich przypadkach zamiast używać get (), możemy użyć navigate (). W Navigate możemy używać metod back () i forward () bez podawania adresów URL.
Składnia:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Wyjaśnienie:
- Przejdź do https://www.softwaretestinghelp.com
- Cofnij się.
- Przejdź dalej.
# 17) getScreenshotAs ()
getScreenshotAs (), aby przechwycić cały zrzut ekranu strony w Selenium WebDriver.
Ten jest często wymagany do zapisania szczegółów pracy lub czasami do ręcznego sprawdzenia wyników. Poniższe polecenie służy do zrobienia zrzutu ekranu i zapisania go w pliku wyjściowym.
Składnia:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Wyjaśnienie:
- Zrób zrzut ekranu i zapisz plik w ujęciu obiektowym.
- Zapisz plik na dysku D jako shot1.png.
# 18) moveToElement ()
moveToElement () z klasy Actions, aby symulować efekt najechania myszą.
Istnieją scenariusze, w których musimy najechać kursorem na elementy internetowe, takie jak menu, aby zobaczyć podmenu, linki, aby zobaczyć zmiany kolorów itp. W takich przypadkach używamy klasy Actions. Spójrz na poniższą składnię klasy Action.
Składnia:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Wyjaśnienie
- Znajdź i zlokalizuj element sieciowy o identyfikatorze div „mainmenu1”.
- Przesuń wskaźnik myszy na element.
# 19) dragAndDrop ()
dragAndDrop () z klasy Actions, aby przeciągnąć element i upuścić go na innym elemencie.
W niektórych scenariuszach możemy chcieć przeciągnąć elementy. Na przykład, przeciągnij obraz na scenę. W tym przypadku możemy skorzystać z klasy Actions.
W metodzie dragAndDrop przekazujemy dwa parametry, Source locator - element, który chcemy przeciągnąć oraz Destination locator - element, na który chcemy upuścić.
Składnia:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Wyjaśnienie:
- Znajdź i zlokalizuj źródłowy element sieciowy.
- Znajdź i zlokalizuj docelowy element sieciowy.
- Przeciągnij i upuść element źródłowy na element docelowy.
# 20) switchTo () i accept (), odrzucenie () i sendKeys ()
switchTo () i accept (), dismiss () i sendKeys () z klasy Alert, aby przełączyć się na powiadomienia wyskakujące i obsłużyć je.
Aby przełączyć się na alerty, wyskakujące okienka i obsłużyć je, używamy kombinacji Przełącz na() i accept (), odrzuć () metody z klasy Alert.
Składnia:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Wyjaśnienie:
- Przejdź do okna alertu.
- W alercie wpisz „To jest pomoc dotycząca testowania oprogramowania”.
- Zaakceptuj alert i zamknij go.
alert.dismiss () można użyć do odrzucenia ostrzeżenia.
# 21) getWindowHandle () i getWindowHandles ()
getWindowHandle () i getWindowHandles () do obsługi wielu okien w Selenium WebDriver.
kto jest odpowiedzialny za wartość biznesową dostarczaną przez zespół scrumowy
W wielu przypadkach aplikacje internetowe mają wiele ramek lub okien.
Są to głównie reklamy lub wyskakujące okienka informacyjne. Możemy obsługiwać wiele okien za pomocą Windows Handlerów. Webdriver przechowuje unikalny identyfikator okna dla każdego okna. Używamy tego identyfikatora do ich obsługi.
Składnia:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Powyższe polecenia służą do pobierania identyfikatorów okien bieżącego i wszystkich okien. Zobacz pętlę poniżej, aby zobaczyć, jak możemy przejść do każdego okna przez pętlę for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Wyjaśnienie:
- Dla każdego identyfikatora uchwytu okna z driver.getWindowHandles (), przełącz się na ten identyfikator okna.
# 22) getConnection ()
getConnection () z DriverManager, aby uruchomić połączenie z bazą danych.
Do nawiązania połączenia z bazą danych używamy metody getConnection z klasy DriverManager.
Składnia:
DriverManager.getConnection(URL, 'username', 'password' )
Wyjaśnienie:
- Połącz się z bazą danych za pomocą adresu URL i poświadczeń.
# 23) WTEDY
POI do odczytania z plików programu Excel.
W testowaniu opartym na danych często zapisujemy dane wejściowe w pliku Excel i czytamy go. W tym celu w WebDriver importujemy pakiet POI, a następnie korzystamy z poniższego polecenia.
Składnia:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Wyjaśnienie:
- Utwórz plik czytnika.
- Przeczytaj plik.
# 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
Potwierdza przy użyciu assertEquals (), assertNotEquals (), assertTrue () i assertFalse (), aby porównać wyniki.
Asercje służą do porównywania oczekiwanych i rzeczywistych wyników. Zdanie lub niezaliczenie testu jest zwykle określane na podstawie wyników stwierdzeń. W automatyzacji stosowane są różne typy potwierdzeń.
Składnia:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Wyjaśnienie:
- W pierwszym poleceniu, ilekroć oczekiwane i rzeczywiste wartości są takie same, stwierdzenie przechodzi bez wyjątku. tj. jeśli wiadomością jest „Ten tekst”, potwierdzenie przechodzi.
- W drugim poleceniu, ilekroć oczekiwane i rzeczywiste wartości są takie same, stwierdzenie kończy się niepowodzeniem z wyjątkiem. tj. jeśli wiadomością jest „Ten tekst”, potwierdzenie nie powiedzie się.
- W trzecim poleceniu, jeśli warunek zostanie spełniony, asercja przechodzi. tj. jeśli wynik<0, then the assertion passes.
- W czwartym poleceniu, jeśli warunek zostanie spełniony, potwierdzenie nie powiedzie się. tj. jeśli wynik<0, then the assertion fails.
# 25) zamknij () i zakończ ()
close () i quit (), aby zamknąć okna i instancje sterowników.
Te polecenia są używane na końcu każdego programu automatyzacji.
Składnia:
driver.close() driver.quit()
Wyjaśnienie:
Pierwsze polecenie zamyka bieżące okno.
Drugie polecenie zamyka tę instancję sterownika, zamykając każde skojarzone okno, które jest otwierane.
Wniosek
W tym samouczku przedstawiliśmy różne często i często używane polecenia WebDriver. Próbowaliśmy wyjaśnić polecenia za pomocą odpowiednich przykładów i fragmentów kodu.
Zrobiłem wszystko, co w mojej mocy, aby wyjaśnić najpopularniejsze polecenia WebDriver, których używamy rutynowo w naszej codziennej pracy. Te polecenia pozwolą ci łatwo pracować z Selenium.
Mam nadzieję, że było to dla ciebie interesujące i pouczające.
Czy jesteś testerem automatyzacji, który wypróbował którekolwiek z powyższych poleceń? Czy może przegapiliśmy jakiekolwiek polecenia, których używasz na powyższej liście?
Następny samouczek # 18 : W nadchodzącym samouczku omówimy temat Tabele internetowe, ramki i elementy dynamiczne które są istotną częścią każdego projektu internetowego. Omówimy również Obsługa wyjątków więcej szczegółów na temat ważnego tematu w jednym z nadchodzących samouczków Selenium.
rekomendowane lektury
- Cucumber Selenium Tutorial: Cucumber Java Selenium Integracja WebDriver
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Jak uruchomić Selenium WebDriver w różnych popularnych przeglądarkach
- Wdrożenie naszego pierwszego skryptu WebDriver - Selenium WebDriver Tutorial # 10
- Często zadawane pytania dotyczące selenu
- Jak radzić sobie z alertami / wyskakującymi okienkami w Selenium WebDriver - Samouczek Selenium nr 16
- Samouczek GeckoDriver Selenium: Jak używać GeckoDriver w projektach Selenium
- Niejawne i jawne oczekiwanie w Selenium WebDriver (typy czeków Selenium)