Ważne polecenia webdrivera Selenium z 2021 roku

W tej serii samouczków dowiemy się o wszystkich wyczerpujących poleceniach webdrivera selenu, począwszy od bardzo podstawowych poleceń selenu do zaawansowanych poleceń Selenium webdriver w poniższej kolejności artykułów: 

Podstawowe polecenia Selenium Webdriver - pytania: 

Selen pośredni sterownik internetowy Polecenia -Pytania:

Zaawansowane polecenia Selenium WebDriver -Pytania:

Podstawowe polecenia selenu - Odpowiedzi: 

polecenia selenu webdriver
Polecenia programu Selenium webdriver

Selenium przejdź do adresu URL:

W Selenium Webdriver, jeśli chcemy nawigować lub otwierać dowolny adres URL za pośrednictwem naszej przeglądarki, możemy to zrobić na dwa główne sposoby, jedno z metodą get (), a drugie z nawigacją, przyjrzymy się, jak to może być Gotowe : 

public void pobierzUrl(String url) { spróbuj { driver.get(url); BASE_LOGGER.info("Pomyślnie nawigowano do adresu URL jako : " + url); } catch (wyjątek ex) { String wyjątekData = ex.getCause().getMessage(); BASE_LOGGER.error("Nie można przejść do adresu URL: " + url + " z błędem : " + wyjątekData); } }

Kod, który możesz napisać, aby nawigować po adresie url, to driver.get („http://example.com”), podczas gdy sterownik jest instancją Webdriver interfejsu Selenium WebDriver.

odwiedź tutaj, aby dowiedzieć się, jak uruchomić całą przeglądarkę w Selenium.

Jak metoda get działa wewnętrznie w Selenium: 

Gdy ta metoda get () zostanie wywołana ze skryptu testowego, wówczas odwołanie do Webdrivera tj. Sterownik będzie czekał aż strona zostanie załadowana, w rzeczywistości metoda get () uruchamia się wewnętrznie funkcja onload która zwraca uchwyt do odniesienia do sterownika po całkowitym załadowaniu strony.

Selenium nawiguj do przodu i nawiguj wstecz:

Innym podejściem do nawigacji do adresu URL z historią przeglądarki jest użycie metody navigate (), w której Selenium wykorzystuje historię przeglądarki do nawigacji do przodu lub do tyłu z odpowiednimi adresami URL, takimi jak: 

Selen przejdź do przodu

public void nawigacjaForward() { spróbuj { driver.navigate().forward(); BASE_LOGGER.info("Pomyślnie nawigacja do przodu" ); } catch (wyjątek ex) { String wyjątekData = ex.getCause().getMessage(); BASE_LOGGER.error("Nie można nawigować z błędem jako: " +ExceptionData); } }

Selenium nawiguj Wstecz: 

public void nawigacjaBack() { spróbuj { driver.navigate().back(); BASE_LOGGER.info("Pomyślnie nawigacja Powrót do adresu URL"); } catch (wyjątek ex) { String wyjątekData = ex.getCause().getMessage(); BASE_LOGGER.error("Nie można nawigować z powrotem do adresu URL: z błędem: " + wyjątekData); } } 

Strona odświeżania selenu

Możemy użyć metody refresh () z nawigacji Selenium 

public void seleniumRefreshPage() { spróbuj { driver.navigate().refresh(); BASE_LOGGER.info("Pomyślnie wykonano stronę odświeżania Selenium"); } catch (wyjątek ex) { String wyjątekData = ex.getCause().getMessage(); BASE_LOGGER.error("Nie można wykonać strony odświeżania Selenium: z błędem: " +exceptData); } }

Kliknij selen

Aby wykonać dowolną operację kliknięcia za pomocą Selenium click, musimy użyć metody o nazwie click () w poniższym podejściu, istnieją inne sposoby wykonania operacji kliknięcia na dowolnym elemencie WebElement w Selenium, np. Za pomocą JavaScriptClick, co jest bardzo przydatne czasami w zależności od sytuacji gdzie twoja normalna metoda klikania Selenium działa w bardzo stabilny sposób, są pewne przypadki, w których jeśli automatyzujesz za pomocą przeglądarki IE i jeśli testowana aplikacja internetowa jest zbudowana w jakimś bootstrapowym JS, wtedy normalna metoda klikania selenem może czasami nie działać , w takim przypadku możesz użyć metody klikania JavaScript.

public void safeClick(Według elementu) { spróbuj { driver.findElement(element).click(); BASE_LOGGER.info("Wykonano operację Safeclick dla lokalizatora: " + String.valueOf(element)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Wystąpił błąd, np.: " +exceptData +" podczas wykonywania Safeclick na elemencie: " + element); } }

Możesz przekazać element za pomocą różnych strategii lokalizatora (np. Xpath, name, css itp.) W metodzie o nazwie findElement (), a następnie wykonać operację metody click () jak powyżej.

Przyciski wysyłania selenu

Kiedy musimy wprowadzić jakiś tekst w jakimś polu tekstowym przez Selenium, używamy metody Selenium sendkeys (), przekazując „Tekst do wprowadzenia” jako parametr w metodzie sendKeys („Tekst do wprowadzenia”) i podobnie do metoda click () ta metoda jest również stosowana do dowolnego elementu webElement (tutaj pole tekstowe sieci WWW), więc musimy użyć driver.findElement, aby wysłać tekst do tego TextBox.

Przykładowy kod wygląda następująco: 

public void enterTextIntoElement(By element, String textToBeEntered) { spróbuj { driver.findElement(element).sendKeys(textToBeEntered); BASE_LOGGER.info( "wykonano operację enterTextIntoElement dla lokalizatora : " + String.valueOf(element)); } catch (wyjątek ex) { String wyjątekData = ex.getCause().getMessage(); BASE_LOGGER.error("operacja enterTextIntoElement nie powiodła się dla lokalizatora : " + String.valueOf(element) + " z wyjątkiem : " +exceptData); } }

Pole tekstowe selenu

Jeśli chcemy wyczyścić jakiekolwiek dane z wcześniej wypełnionego pola tekstowego, możemy skorzystać z metody o nazwie clear (), a także za pomocą klasy Keys w Selenium możemy to zrobić, dzięki czemu możemy bezpośrednio wykonać Operacje na klawiaturze wraz ze skrótami klawiaturowymi :

Aby wyczyścić Dane za pomocą metody clear () możemy napisać w poniższym podejściu: 

public void clearField(Według elementu) { spróbuj { driver.findElement(element).clear(); BASE_LOGGER.info("Operacja ClearField została wykonana dla lokalizatora: " + String.valueOf(element)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Operacja ClearField nie powiodła się dla lokalizatora : " + String.valueOf(element) + " z wyjątkiem : " +exceptData); } }

Używając klasy Keys, możemy również wyczyścić pola tekstowe w następujący sposób.

Okno maksymalizacji selenu

Podczas pracy z automatyzacją przeglądarki, jeśli musimy zmaksymalizować okno w Selenium, możemy zastosować następujące podejścia: 

Selenium Maximize Window przy użyciu metody Maximize ():  

public void zmaksymalizujWindow() { spróbuj { driver.manage().window().maximize(); BASE_LOGGER.info("Pomyślne zmaksymalizowanie okna"); } catch (Wyjątek e) { BASE_LOGGER.info("Wystąpił wyjątek podczas maksymalizacji okna jako : " + e.getCause().getMessage()); } }

Selenium Maximize Window przy użyciu ChromeOptions for ChromeBrowser:

Korzystając z poniższej metody, ustawiamy instancję przeglądarki Chrome dla Webdrivera w trybie zmaksymalizowanym, a zwrócona sesja sterownika będzie nadal korzystać z tej samej funkcji (tj. Maksymalizuj okno) do dalszych operacji internetowych zgodnie ze skryptem.

public WebDriver openBrowserInMaximizeWindow(){ try { ChromeOptions options = new ChromeOptions(); options.addArguments("start-maksymalizacja"); Sterownik WebDriver = nowy sterownik ChromeDriver (opcje); }catch(Wyjątek e){ BASE_LOGGER.error("Wystąpił wyjątek z : " + e.getCause().getMessage()); } powrót sterownika; }

Okno minimalizacji selenu

Możemy zminimalizować okno za pomocą polecenia Selenium minimal () w następujący sposób:  

public void minimalizujWindow() { spróbuj { driver.manage().window().minimize(); BASE_LOGGER.info("Pomyślnie zminimalizowano okno"); } catch (Wyjątek e) { BASE_LOGGER.info("Wystąpił wyjątek podczas minimalizowania okna jako : " + e.getCause().getMessage()); } }

Zamknij przeglądarkę Selenium:

Aby zamknąć przeglądarkę w Selenium, używamy metody close () w poniższym podejściu: 

public void zamknijCurrentWindow() { spróbuj { if (null != sterownik) { driver.close(); BASE_LOGGER.info("Pomyślnie zamknięto bieżące okno/przeglądarkę"); } else { BASE_LOGGER.info("Nie można zamknąć bieżącej instancji okna/przeglądarki jako jej NULL"); } } catch (Wyjątek e) { BASE_LOGGER.info("Wystąpił wyjątek podczas zamykania bieżącego okna/przeglądarki"); } }

Selenium zamknij przeglądarkę

Aby zamknąć wszystkie instancje przeglądarki w Selenium, używamy metody quit () w poniższym podejściu: 

public void quitBrowser() { spróbuj { if (null != sterownik) { driver.quit(); BASE_LOGGER.info("Pomyślnie zamknij przeglądarkę"); } else { BASE_LOGGER.info("Nie można zamknąć przeglądarki jako jej NULL"); } } catch (Wyjątek e) { BASE_LOGGER.error("Wystąpił wyjątek podczas ZAMYKANIA przeglądarki"); } }

Różnica między driver.close () i driver.quit () w Selenium:

Pośrednie polecenia webdrivera Selenium - odpowiedzi:

Spadek selenu:

W strukturze DOM strony internetowej menu rozwijane jest implementowane przez wybór lub wprowadzenie tagu HTML. Aby pracować z rozwijanym menu z Selenium i wykonać określone 

operacje internetowe na listach rozwijanych, musimy użyć klasy „Select” z Selenium WebDrivers API w ramach „org.openqa.selenium.support.ui”Pakietu Selenium WebDriver. 

Istnieją 2 różne opisy problemu lub zapytaj podczas pracy z wyborem DropDown w Selenium: 

Wybór pojedynczego elementu z listy rozwijanej naraz

W poniższym podejściu możemy pracować z Dropdown:  

Krok pierwszy :

Musisz utworzyć uchwyt dla DropDown WebElement za pomocą Wybierz tworzenie obiektów klasy w następujący sposób:

Select select = new Select (webelement WebElement);

Krok drugi : 

Istnieją 3 różne podejścia do wybierania wartości z listy rozwijanej w Selenium, możemy użyć dowolnej z poniższych metod, aby wybrać wartość z listy rozwijanej w Selenium: 

Oto poniższe Podejście, które możemy zastosować, aby wybrać wartość z listy rozwijanej: 

Lista rozwijana selenu - podejście pierwsze: 
W Approach One możesz użyć tekst, który jest widoczny pożądanego wyboru elementu internetowego.

public void selectFromDropDownByText(By locator, String visibleText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(visibleText); BASE_LOGGER.info("Wykonano operację SelectFromDropDownByText dla lokalizatora: " + String.valueOf(locator)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Wystąpił błąd, np.: " +exceptData +" podczas wykonywania selectFromDropDownByText na elemencie : " + lokalizator); } }

W powyższej metodzie możesz podać lokalizator listy rozwijanej i widoczny tekst, który chcesz wybrać z listy rozwijanej, a następnie wykona żądaną operację Wybranie oczekiwanego elementu listy rozwijanej. 

Lista rozwijana selenu - Podejście drugie:

W tym podejściu wybierasz element Webelement za pomocą atrybutu wartości wybranego elementu WebElement z listy rozwijanej: 

public void selectFromDropDownByValue(By locator, String visibleText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue("Wartość pożądanego elementu Web"); BASE_LOGGER.info("dla lokalizatora została wykonana operacja selectFromDropDownByValue: " + String.valueOf(locator)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Wystąpił błąd, np.: " +exceptData +" podczas wykonywania selectFromDropDownByValue na elemencie : " + lokalizator); } }

W powyższej metodzie możesz podać lokalizator listy rozwijanej i atrybut wartości elementu WebElement, który chcesz wybrać z listy rozwijanej, a następnie wykona żądaną operację Wybierając oczekiwany element listy rozwijanej. 

Lista rozwijana selenu - podejście trzecie:

W tym podejściu wybierasz element sieciowy za pomocą indeksu (kolejność elementu WebElement w tagu wyboru HTML) wybranego elementu WebElement z listy rozwijanej, indeks zwykle zaczyna się od 0:

public void selectFromDropDownByIndex(By locator, String visibleText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("dla lokalizatora została wykonana operacja selectFromDropDownByIndex: " + String.valueOf(locator)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Wystąpił błąd, np.: " +exceptData +" podczas wykonywania selectFromDropDownByIndex na elemencie : " + lokalizator); } }

W powyższej metodzie możesz podać lokalizator listy rozwijanej i indeks / kolejność elementu WebElement (w tagu Select z listy rozwijanej), którego chcesz wybrać z listy rozwijanej, a następnie wykona żądaną operację Wybranie oczekiwanego elementu listy rozwijanej .

Jednoczesne wybieranie wielu elementów z listy rozwijanej 

Zależy to od struktury HTML DOM i implementacji, czy jakikolwiek element listy rozwijanej może mieć wielokrotny wybór elementów. Aby wybrać wiele elementów w Selenium, musimy wykonać poniższe dwa kroki: 

Krok pierwszy : Sprawdź, czy DropDown WebElement zezwala na wielokrotny wybór przy użyciu metody isMultiple (), zwraca to wartość logiczną jako prawda lub fałsz.

Krok drugi : jeśli powyższy krok zwróci prawdę, lista rozwijana umożliwia wybór wielokrotny. Po tym możemy użyć omówionych powyżej dowolnych / wszystkich trzech różnych podejść, aby wybrać wiele wartości i wykonać dowolne operacje.

Podsumowując poniżej, jest przykładowy kod:

Element WebElement =driver.findElement(By.xpath("XPATH OF THE DropDown")); Wybierz selectMultiple = new Select(element); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); //Podobnie moglibyśmy użyć innych podejść/metod do wybierania elementów rozwijanych, takich jak selectByVisibleText lub selectByValue }

Przeciągnij i upuść selen :

W części samouczka nauczymy się różnych podejść do wykonywania przeciągania i upuszczania w selenie, takich jak: 

Co to jest przeciąganie i upuszczanie w Selenium i gdzie jest używane: 

Przeciągnij i upuść to specyficzna operacja, w której użytkownicy przechodzą do aplikacji internetowych i próbują wykonać operację (przeciągnięcie za pomocą myszy) na jakimś elemencie sieciowym, który może swobodnie poruszać się po aplikacji i może zostać upuszczony w innym miejscu strony internetowej tej aplikacji. 

W tym przypadku element, który jest przeciągany, nazywany jest Source WebElement, a element, do którego jest upuszczany, nazywany jest Destination WebElement. 

Aby zrealizować powyższe scenariusze poprzez Automation with Selenium musimy przeciągnąć i upuścić funkcjonalności dostarczane przez Selenium.

Różne podejścia do przeciągania i upuszczania w selenie:

Przeciągnij i upuść w Selenium za pomocą metody Build (): 

Jak działa metoda Build () :

build () z klasy Actions w Selenium, która jest częścią pakietu org.openqa.selenium.interakcje wewnętrznie generuje złożone działania 

łącząc wszystkie akcje, które zostały wywołane lub wyzwolone przed wywołaniem metody build ().

Dla przykładu :

nowe Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();

Powyższa instrukcja do wykonania operacji przeciągnij i upuść jest używana do wiązania poprzednich akcji, takich jak metody clickAndHold, moveToElement i release.

Oto poniższy fragment kodu służący do wykonywania przeciągania i upuszczania w selenie przy użyciu metody kompilacji klasy Actions: 

public void dragAndDrop (Według źródła, Przez miejsce docelowe) { spróbuj { ElementSieciowy element źródłowy = driver.findElement(źródło); WebElement element docelowy = driver.findElement(miejsce docelowe); Konstruktor akcji = nowe akcje (sterownik); Akcja dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); przeciągnijAndDrop.perform(); BASE_LOGGER.info("Pomyślnie wykonano akcję przeciągnij i upuść"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np.: " + wyjątekData + " podczas wykonywania DragAndDrop "); } }

Przeciągnij i upuść w Selenium za pomocą metody dragAndDrop ():

Jak działa metoda dragAndDrop ():

dragAndDrop (sourceWebElement, destinationWebElement) w zasadzie przyjmuje dwa argumenty, jeden to źródło, a drugi to docelowy element sieciowy. 
dragAndDrop usuwa potrzebę clickAndHold, moveToElement, release metody w klasie Action, wewnętrznie obsługuje wszystkie scenariusze, które są wykonywane przez te metody.

Oto poniższy fragment kodu do wykonywania dragAndDrop z metodą dragAndDrop:

public void dragAndDropOps (Według źródła, Według miejsca docelowego) { spróbuj { Element WebElement element źródłowy = driver.findElement (źródło); WebElement element docelowy = driver.findElement(miejsce docelowe); Konstruktor akcji = nowe akcje (sterownik); builder.dragAndDrop(element źródłowy,element docelowy).perform(); BASE_LOGGER.info("Pomyślnie wykonano akcję przeciągnij i upuść"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np.: " + wyjątekData + " podczas wykonywania DragAndDrop "); } }

Przeciągnij i upuść w Selenium za pomocą metody dragAndDropBy ():

Jak działa metoda dragAndDropBy (źródło WebElement, int xOffset, int yOffset):

Metoda dragAndDropBy () przyjmuje 3 argumenty, którymi są: 

Source WebElement: element, który jest przeciągany, czyli element źródłowy 

xOffset: przesunięcie w poziomie lokalizacji docelowej 

yOffset: pionowe przesunięcie miejsca docelowego 

Wewnętrznie ta metoda pobiera źródłowy element sieciowy, przenosi go i zwalnia do lokalizacji docelowej. Ta metoda jest przydatna, jeśli chcesz przenieść dowolny element źródłowy do dowolnych lokalizacji pikseli.

Poniżej znajduje się fragment kodu dla DragAndDropBy w Selenium:

public void dragAndDropByOps (Według źródła, int xOffSet,int yOffSet) { spróbuj { Element Web element źródłowy = driver.findElement (źródło); Konstruktor akcji = nowe akcje (sterownik); builder.dragAndDropBy(element źródłowy,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("Pomyślnie wykonano akcję przeciągnij i upuść"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np.: " + wyjątekData + " podczas wykonywania DragAndDrop "); } }

Odwiedź tutaj, aby zapoznać się z pozostałymi zaawansowanymi zestawami poleceń webdriver Intermediate Selenium.

Zaawansowane polecenia Selenium WebDriver -Odpowiedzi:

Kliknij dwukrotnie selen :

Aby powielić operację, tj. Dwukrotne kliknięcie myszą w Selenium, musimy wykonać podwójne kliknięcie za pomocą klasy Actions w Selenium i możemy to zrobić w poniższym podejściu: 

public void doubleClick(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); akcje.doubleClick(element).perform(); BASE_LOGGER.info("Wykonano podwójne kliknięcie na elemencie: " + lokalizator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element nie jest dołączony do dokumentu strony " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + lokalizator + " nie został znaleziony w DOM " + e.getCause().getMessage()); } catch (Wyjątek e) { BASE_LOGGER.error("Element " + lokalizator + " nie był klikalny " + e.getCause().getMessage()); } }

Powyższy fragment kodu jest metodą, która w zasadzie przyjmuje argument jako Locator, tj. WebElement, na którym ma zostać wykonane podwójne kliknięcie.

Contextclick w selenie:

Aby odtworzyć kliknięcie kontekstu lub kliknięcie prawym przyciskiem myszy za pomocą myszy, musimy wykonać metodę kliknięcia kontekstowego za pomocą klasy Actions w Selenium i możemy to zrobić w poniższym podejściu: 

public void rightClick(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); działania.kontekstKliknij(element).wykonaj(); BASE_LOGGER.info("Wykonano kontekst Kliknij element: " + lokalizator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element nie jest dołączony do dokumentu strony " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + lokalizator + " nie został znaleziony w DOM " + e.getCause().getMessage()); } catch (Wyjątek e) { BASE_LOGGER.error("Element " + lokalizator + " nie był klikalny " + e.getCause().getMessage()); } }

Aby zapoznać się ze szczegółowymi poleceniami sterownika internetowego Advance Selenium, odwiedź stronę tutaj.. Ponadto, aby zrozumieć Klasa akcji w selenie i jego realizacje odwiedź tutaj.

Krytyczne FAQ: 

Co to jest manage () w Selenium?

driver.manage () zwraca odniesienie do implementacji interfejsu WebDriver.Options.Interfejs jest interfejsem do zarządzania i obsługi akcji w menu przeglądarki, takich jak: 

W przypadku wyczerpujących zestawów plików Wywiad Selenium Pytania - Zestawy krytyczne i zaawansowane znajdują się tutaj.

Wnioski:

W tej sekcji samouczka omówiliśmy Basic Webdriver Selenium poleceń, Kliknij tutaj, aby poznać Polecenia webdrivera pośredniego i zaawansowanego Selenium. Aby nauczyć się Selenium od podstaw, kliknij tutaj.

Zostaw komentarz