Selen - Webdriver

WebDriver to narzędzie do automatyzacji testowania aplikacji internetowych. Jest powszechnie znany jako Selenium 2.0. WebDriver używa innej podstawowej struktury, podczas gdy Selenium RC używa JavaScript Selenium-Core osadzonego w przeglądarce, który ma pewne ograniczenia. WebDriver współdziała bezpośrednio z przeglądarką bez żadnego pośrednika, w przeciwieństwie do Selenium RC, który jest zależny od serwera. Jest używany w następującym kontekście -

  • Testy w wielu przeglądarkach, w tym ulepszona funkcjonalność dla przeglądarek, która nie jest dobrze obsługiwana przez Selenium RC (Selenium 1.0).

  • Obsługa wielu ramek, wielu okien przeglądarki, wyskakujących okienek i alertów.

  • Złożona nawigacja po stronach.

  • Zaawansowana nawigacja użytkownika, taka jak przeciąganie i upuszczanie.

  • Elementy interfejsu użytkownika oparte na technologii AJAX.

Architektura

WebDriver najlepiej wyjaśnić za pomocą prostego diagramu architektury, jak pokazano poniżej.

Selenium RC Vs WebDriver

Selen RC Selenium WebDriver
Architektura Selenium RC jest skomplikowana, ponieważ serwer musi być uruchomiony przed rozpoczęciem testu. Architektura WebDriver jest prostsza niż Selenium RC, ponieważ steruje przeglądarką z poziomu systemu operacyjnego.
Serwer Selenium działa jako pośrednik między przeglądarką a poleceniami Selenese. WebDriver współdziała bezpośrednio z przeglądarką i używa jej silnika do sterowania nią.
Wykonywanie skryptu Selenium RC jest wolniejsze, ponieważ wykorzystuje JavaScript do interakcji z RC. WebDriver jest szybszy, ponieważ współdziała bezpośrednio z przeglądarką.
Selenium RC nie może obsługiwać bezgłowego wykonywania, ponieważ wymaga prawdziwej przeglądarki do pracy. WebDriver może obsługiwać bezgłowe wykonanie.
To prosty i mały interfejs API. Złożony i nieco duży interfejs API w porównaniu do RC.
Mniej obiektowy interfejs API. Czysto obiektowy interfejs API.
Nie można testować aplikacji mobilnych. Potrafi testować aplikacje na iPhone'a / Androida.

Skrypty przy użyciu WebDriver

Pozwól nam zrozumieć, jak pracować z WebDriver. Do demonstracji użylibyśmyhttps://www.calculator.net/. Wykonamy „Kalkulator procentowy”, który znajduje się pod „Kalkulatorem matematycznym”. Pobraliśmy już wymagane pliki JAR WebDriver. Szczegółowe informacje można znaleźć w rozdziale „Ustawienia środowiskowe”.

Step 1 - Uruchom „Eclipse” z wyodrębnionego folderu Eclipse.

Step 2 - Wybierz obszar roboczy, klikając przycisk „Przeglądaj”.

Step 3 - Teraz utwórz „Nowy projekt” z menu „Plik”.

Step 4 - Wprowadź nazwę projektu i kliknij „Dalej”.

Step 5- Przejdź do zakładki Biblioteki i wybierz wszystkie pliki JAR, które pobraliśmy. Dodaj odniesienie do wszystkich plików JAR w folderze Selenium WebDriver Library, a także selenium-java-2.42.2.jar i selenium-java-2.42.2-srcs.jar.

Step 6 - Pakiet jest tworzony, jak pokazano poniżej.

Step 7 - Teraz kliknij pakiet prawym przyciskiem myszy i wybierz „Nowy” >> „Klasa”, aby utworzyć „klasę”.

Step 8 - Teraz nazwij klasę i ustaw ją jako główną funkcję.

Step 9 - Zarys klasy pokazano poniżej.

Step 10- Teraz czas na kodowanie. Poniższy skrypt jest łatwiejszy do zrozumienia, ponieważ zawiera komentarze, które jasno wyjaśniają kroki. Zapoznaj się z rozdziałem „Lokalizatory”, aby dowiedzieć się, jak przechwytywać właściwości obiektów.

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class webdriverdemo {
   public static void main(String[] args) {
   
      WebDriver driver = new FirefoxDriver();
      //Puts an Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      //Launch website
      driver.navigate().to("http://www.calculator.net/");
      
      //Maximize the browser
      driver.manage().window().maximize();
      
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
      
      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
      
      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      
      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      
      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr[2]/td/input[2]")).click();

      
      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/font/b")).getText();

      
      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);
      
      //Close the Browser.
      driver.close();
   }
}

Step 11 - Wynik powyższego skryptu zostanie wydrukowany w konsoli.

Najczęściej używane polecenia

W poniższej tabeli wymieniono niektóre z najczęściej używanych poleceń w programie WebDriver wraz z ich składnią.

Sr.No. Polecenie i opis
1

driver.get("URL")

Aby przejść do aplikacji.

2

element.sendKeys("inputtext")

Wprowadź tekst w polu wprowadzania.

3

element.clear()

Wyczyść zawartość z pola wprowadzania.

4

select.deselectAll()

Odznacz wszystkie OPCJE z pierwszego WYBORU na stronie.

5

select.selectByVisibleText("some text")

Wybierz OPCJĘ z danymi wejściowymi określonymi przez użytkownika.

6

driver.switchTo().window("windowName")

Przenieś fokus z jednego okna do drugiego.

7

driver.switchTo().frame("frameName")

Swing od ramki do ramki.

8

driver.switchTo().alert()

Pomaga w obsłudze alertów.

9

driver.navigate().to("URL")

Przejdź do adresu URL.

10

driver.navigate().forward()

Aby przejść dalej.

11

driver.navigate().back()

Nawigacja wstecz.

12

driver.close()

Zamyka bieżącą przeglądarkę skojarzoną ze sterownikiem.

13

driver.quit()

Zamyka sterownik i zamyka wszystkie skojarzone z nim okno tego sterownika.

14

driver.refresh()

Odświeża bieżącą stronę.