how run selenium webdriver different popular browsers
Selenium obsługuje tylko aplikacje internetowe i do ich otwarcia potrzebna jest przeglądarka. Selenium może obsługiwać różne przeglądarki do automatyzacji testów.
W tym samouczku wyjaśnimy, jak skonfigurować sterowniki dla różnych przeglądarek dostępnych na rynku.
W obecnej branży istnieją tylko trzy popularne przeglądarki, które są szeroko stosowane, tj. Google Chrome, Mozilla Firefox i Internet Explorer. Jednak Selenium obsługuje również inne przeglądarki. Aby wykonać nasz skrypt w różnych przeglądarkach, potrzebujemy sterownika tej przeglądarki.
=> Przeczytaj wszystkie samouczki Selenium tutaj
Czego się nauczysz:
- Jak skonfigurować sterowniki dla różnych przeglądarek
- Testowanie w różnych przeglądarkach przy użyciu Selenium WebDriver
- Wniosek
Jak skonfigurować sterowniki dla różnych przeglądarek
Zalecane narzędzie:
1) LambdaTest
Wykonuj testy automatyzacji Selenium na skalowalnej, bezpiecznej i niezawodnej sieci Selenium Grid opartej na chmurze. Przyspiesz automatyzację testów Selenium w tym samym czasie zwiększ zasięg testów, testując w infrastrukturze online 2000+ środowisk stacjonarnych i mobilnych.
Kiedy zaczynamy od automatyzacji Selenium, nasza pierwsza linia kodu jest następująca:
Sterownik WebDriver = nowy FireFoxDriver ();
Oznacza to, że WebDriver jest interfejsem i definiujemy zmienną referencyjną (sterownik), której typem jest interfejs.
Teraz każdy przypisany do niego obiekt musi być instancją klasy (FireFoxDriver) lub jakimikolwiek innymi sterownikami, które implementują ten interfejs. W naszym przypadku FireFoxDriver to klasa, a interfejs to WebDriver.
Po zakończeniu wszystkich ustawień sterownika wykonujemy dowolne polecenie Selenium, takie jak:
driver.getTitle ();
Zobacz zrzut ekranu:
jak używać rozszerzenia Github dla Visual Studio
To, co dzieje się teraz, polega na tym, że wewnętrznie tworzone jest żądanie HTTP i wysyłane do określonego sterownika przeglądarki, który zdefiniowaliśmy, sterownik przeglądarki używa tego serwera HTTP do pobierania żądań HTTP i określa kroki niezbędne do wdrożenia polecenia Selenium.
Stworzona przez nas logika jest wykonywana w przeglądarce, a następnie wynik wykonania jest wysyłany z powrotem do serwera HTTP i ponownie przesyła status do skryptu automatyzacji.
W ten sposób po ustawieniu sterownika możemy uzyskać dostęp do wszystkich wbudowanych metod klasy sterownika, takich jak:
- findElement ();
- blisko();
- getClass (); i wiele więcej
Zobacz zrzut ekranu:
Aby uzyskać dostęp do tych metod, wpisz „ kierowca. ”W edytorze i pokaże wszystkie metody lub możesz nacisnąć„ ctrl + spacja ”, a pokaże ci metody.
Zobacz zrzut ekranu:
Czasami wbudowane metody nie są dostępne po naciśnięciu „ctrl + spacja”. Następnie musisz sprawdzić ustawienia ścieżki JAVA_HOME wprowadzone w zmiennej środowiskowej i upewnić się, że są poprawne.
Kroki, aby skonfigurować zmienną środowiskową:
- Wybierz Panel sterowania -> Kliknij System
- Przejdź do zaawansowanych ustawień systemu
- Kliknij przycisk Zmienne środowiskowe
- Ustaw ścieżkę JAVA_HOME po kliknięciu nowego przycisku.
Selenium jest dostarczany z domyślnym sterownikiem Mozilla Firefox, który jest dołączony do pliku jar Selenium WebDriver. Dlatego do wywołania sterownika Firefox nie jest wymagana żadna konfiguracja. Jeśli chcemy korzystać z innych przeglądarek, musimy ustawić jego właściwość systemową.
Zalecana lektura => Testowanie w różnych przeglądarkach przy użyciu Selenium Grid
Testowanie w różnych przeglądarkach przy użyciu Selenium WebDriver
Teraz zobaczymy konfigurację i wykonanie sterowników w poniższych przeglądarkach:
# 1) Mozilla Firefox
#dwa) Google Chrome
# 3) Internet Explorer
# 4) Opera
# 5) Ghost Driver lub PhantomJS
# 6) Jednostka HTML
Sterowniki do wspomnianych przeglądarek (z wyjątkiem PhantomJS i HTML Unit - sprawdź poniżej) można pobrać tutaj: SeleniumHQ
Zakładając, że wszyscy wiecie o różnych przeglądarkach wymienionych powyżej, teraz wyjaśnię, co to jest Kierowca-duch i Sterownik jednostki HTML funkcjonalność i jak je skonfigurować w swoim skrypcie.
# 1) Sterownik jednostki HTML
Korzystając z tego sterownika, możemy przeprowadzić Headless Browser Testing, co oznacza, że nie ma dla niego GUI, który można zobaczyć, gdy działa wewnętrznie. Nie możesz też wykonywać wszystkich operacji, tak jak w zwykłych przeglądarkach.
Ogólnie do testowania nie zaleca się używania sterownika jednostki HTML. Możemy go jednak używać, ponieważ jest szybszy, najlżejsza implementacja WebDriver służy do generowania danych testowych, do przekazywania zawartości jednej strony internetowej do innego programu lub skryptu.
Aby korzystać ze sterownika jednostki HTML, nie ma potrzeby instalowania żadnych dodatkowych interfejsów API ani plików jar. Możesz go użyć, gdy masz samodzielny plik jar serwera Selenium.
Zobacz poniższy kod:
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
Wynik : Facebook - Zaloguj się lub Zarejestruj się
PASSED : verifyFacebookTitle
Sterownik jednostki HTML nie jest zalecany do złożonych aplikacji i który używa jquery, javascript lub HTML 5. Domyślnie nie obsługuje javascript. Dlatego musisz podać prawdziwy warunek, aby go wspierać.
# 2) Sterownik PhantomJS
Przeglądarka PhantomJS służy również do przeprowadzania testów bezgłowych przeglądarki. Wykorzystuje JavaScript API. Możesz go używać do bezgłowego testowania witryn internetowych i uzyskiwania dostępu do stron internetowych. Zaletą sterownika HTML Unit Driver jest to, że może przechwytywać zrzuty ekranu. Oznacza to, że twój test będzie działał w tle i przechwytuje zrzuty ekranu.
Aby korzystać z przeglądarki PhantomJS z Selenium WebDriver, musimy użyć i pobrać GhostDriver. Jest to implementacja protokołu przewodowego WebDriver w prostym JS dla przeglądarki PhantomJS. W najnowszej wersji PhantomJS zintegrowali GhostDriver z PhantomJS. Dlatego nie musimy teraz instalować go osobno.
Pobierz plik PhantomJs.exe stąd: PhantomJs
Aby uruchomić PhantomJS, potrzebujemy sterownika PhantomJS. Link do pobrania: Sterownik PhantomJS
I musimy ustawić plik właściwości PhantomJs.binary.path, kiedy wykonujemy skrypt.
Zobacz poniższy kod:
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
Wynik : https://www.facebook.com/
PASSED: verifyFacebookTitle
# 3) Sterownik Mozilla Firefox
Jak uruchomić WebDriver w przeglądarce Firefox:
Aby wywołać sterownik Firefox Driver, nie ma potrzeby instalowania ani konfigurowania dodatkowych plików jar. Jest to domyślny sterownik obsługiwany przez Selenium WebDriver.
Zobacz poniższy kod do wykonania:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
Wynik : Dopasowano tytuł strony
PASSED : Test_Gmail_Login
# 4) Sterownik Google Chrome
Jak uruchomić WebDriver w przeglądarce Chrome:
Aby zadzwonić do sterownika Google Chrome, najpierw pobierz sterownik, a następnie ustaw właściwość systemu za pomocą poniższego kodu:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
Wynik : Witamy w rediff.com
Rediff.com: Zakupy online, Rediffmail, Najnowsze wiadomości z Indii, Biznes, Bollywood, Sport, Stock, Wyniki krykieta na żywo, Pieniądze, Recenzje filmów
PASSED : Test_Rediff_Alert
Przeczytaj także=> Samouczek dotyczący selenu - Znajdź elementy w przeglądarkach Chrome i IE
# 5) Sterownik Internet Explorer
Jak uruchomić WebDriver w przeglądarce IE:
Aby wywołać sterownik Internet Explorer, pobierz sterownik i ustaw właściwość systemową.
Zobacz poniższy kod:
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
Wynik : Google
PASSED : ieDriver
# 6) Sterownik Opera
Aby wywołać Opera Driver, pobierz sterownik i ustaw właściwości systemu.
Zobacz poniższy kod:
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
Wynik : Utwórz konto
szybkie sortowanie pseudokod c ++
PASSED : operaDriver
Przeczytaj także=> Adnotacje TestNG w Selenium
Wniosek
W tym samouczku omówiłem, jak skonfigurować i używać sterowników dla różnych przeglądarek.
Widzieliśmy, czym sterownik jednostki HTML i sterownik PhantomJS różnią się od innych powszechnie używanych przeglądarek. Powodem tego jest to, że nie są one używane do typowego przeglądania, takiego jak Google Chrome i inne; zamiast tego działają wewnętrznie i szybciej wykonują nasze polecenia, ponieważ nie obsługuje graficznego interfejsu użytkownika. Możemy również wykonywać skrypty po stronie serwera za pomocą PhantomJS.
Teraz, gdy zrozumieliśmy, jak skonfigurować sterowniki i uruchomić je w różnych przeglądarkach, musimy wyjaśnić, dlaczego to robimy. Jak wszyscy wiecie, Selenium obsługuje tylko aplikacje internetowe i do ich otwarcia potrzebujemy przeglądarki.
Do otwierania tych przeglądarek dostępne są różne sterowniki (omówione powyżej). WebDriver to interfejs, który zawiera wszystkie zdefiniowane w nim abstrakcyjne metody. Dlatego nazywamy te metody, które są omówione w tym samouczku, w celu wykonania naszych zadań.
Daj nam znać, jeśli masz jakieś pytania / komentarze dotyczące tego samouczka.
rekomendowane lektury
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- 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
- Niejawne i jawne oczekiwanie w Selenium WebDriver (typy czeków Selenium)
- Przewodnik po generowaniu raportów rozszerzonych w Selenium WebDriver
- Samouczek GeckoDriver Selenium: Jak używać GeckoDriver w projektach Selenium