how run selenium webdriver different popular browsers
Selenium поддържа само уеб-базирани приложения и за да ги отворим се нуждаем от браузър. Селенът може да поддържа различни браузъри за автоматизация на тестове.
В този урок ще обясним как да настроите драйвери за различните браузъри, налични на пазара.
В настоящата индустрия има само три популярни браузъра, които се използват широко, т.е. Google Chrome, Mozilla Firefox и Internet Explorer. Селенът обаче поддържа и други браузъри. За да изпълним нашия скрипт в различни браузъри, се нуждаем от драйвера на този браузър.
=> Прочетете всички уроци за селен тук
Какво ще научите:
- Как да настроите драйвери за различните браузъри
- Тестване на различни браузъри с помощта на Selenium WebDriver
- Заключение
Как да настроите драйвери за различните браузъри
Препоръчан инструмент:
# 1) LambdaTest
Извършете тестове за автоматизация на Selenium на мащабируема, сигурна и надеждна базирана на облак Selenium Grid онлайн. Ускорете автоматизацията си за тестване на Selenium, като същевременно увеличите покритието на тестовете си, като тествате на онлайн инфраструктура от 2000+ настолни и мобилни среди за браузъри.
=> Посетете уебсайта на LambdaTest
Когато започнем за първи път с автоматизация на Selenium, първият ни ред на код идва като:
Драйвер за WebDriver = нов FireFoxDriver ();
Това означава, че WebDriver е интерфейс и ние определяме референтна променлива (драйвер), чийто тип е интерфейс.
Сега всеки обект, който му присвояваме, трябва да бъде екземпляр на клас (FireFoxDriver) или други драйвери, които прилагат този интерфейс. В нашия случай FireFoxDriver е клас, а интерфейсът е WebDriver.
Когато цялата ни настройка на драйвера приключи, ние изпълняваме всяка команда на Selenium като:
driver.getTitle ();
Вижте екранна снимка:
qtp интервю въпроси и отговори за опитни
Това, което се случва сега е, че вътрешно се създава HTTP заявка и се изпраща до конкретния драйвер на браузъра, който дефинирахме, драйверът на браузъра използва този HTTP сървър за получаване на HTTP заявките и той определя стъпките, необходими за изпълнението на командата Selenium.
Нашата създадена логика се изпълнява в браузъра, след което резултатът от изпълнението се изпраща обратно на HTTP сървъра и той отново изпраща състоянието към скрипта за автоматизация.
По този начин, след задаване на драйвера, можем да получим достъп до всички вградени методи на класа на водача като:
- findElement ();
- близо();
- getClass (); и много други
Прегледайте екранната снимка:
За достъп до тези методи напишете „ шофьор. ”В редактора и той ще покаже всички методи, или можете да натиснете„ ctrl + интервал ”и ще ви покаже методите.
Вижте екранна снимка:
Понякога вградените методи не са достъпни, когато натиснете „ctrl + интервал“. След това трябва да проверите настройките на пътя на JAVA_HOME, направени в Променлива на околната среда, и да се уверите, че са правилни.
Стъпки за настройване на променлива на околната среда:
- Отидете на Контролен панел -> Щракнете върху Система
- Отидете на Advance System Settings
- Щракнете върху бутона Променливи на околната среда
- Задайте път на JAVA_HOME при щракване върху новия бутон.
Selenium се предлага с драйвера за Mozilla Firefox по подразбиране, който е включен в jar jar файла на Selenium WebDriver. Ето защо за извикване на драйвер на Firefox не се изисква настройка. Ако искаме да използваме други браузъри, трябва да настроим системното му свойство.
Препоръчително четене => Тестване на различни браузъри с помощта на селенова решетка
Тестване на различни браузъри с помощта на Selenium WebDriver
Сега ще видим настройката и изпълнението на драйверите в посочените по-долу браузъри:
# 1) Mozilla Firefox
# две) Google Chrome
# 3) Internet Explorer
# 4) Опера
# 5) Ghost Driver или PhantomJS
# 6) HTML единица
Драйверите за споменатите браузъри (с изключение на PhantomJS и HTML Unit - проверете по-долу за тях) можете да изтеглите от тук: СеленHQ
Ако приемем, че всички сте запознати с различните браузъри, споменати по-горе, сега ще обясня какво е Шофьор на призрак и Драйвер за HTML единица функционалност и как да ги настроите за вашия скрипт.
# 1) Драйвер за единица HTML
Използвайки този драйвер, можем да направим Безглавно тестване на браузъра, което означава, че за него няма графичен интерфейс, който можете да видите, докато работи вътрешно. И не можете да извършвате всички операции, както в нормалните браузъри.
Като цяло за тестване не се препоръчва драйвер за HTML единица. Можем обаче да го използваме, тъй като е по-бързо, най-леката реализация на WebDriver се използва за генериране на тестови данни, за предаване на съдържанието на една уеб страница на друга програма или скрипт.
За използване на HTML Unit Driver няма нужда да инсталирате допълнителни API или Jar файлове. Можете да го използвате, след като имате самостоятелен файл на сървъра на Selenium.
Вижте кода по-долу:
//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); } }
Изход : Facebook - Влезте или се регистрирайте
МИНАЛ : verifyFacebookTitle
Драйверът на HTML Unit не се препоръчва за сложни приложения и който използва jquery или javascript или HTML 5. По подразбиране не поддържа javascript. Следователно трябва да дадете вярно условие, за да го подкрепите.
# 2) Драйвер на PhantomJS
Браузърът PhantomJS се използва и за извършване на тестване на безглав браузър. Той използва JavaScript API. Можете да го използвате за тестване на обезглавени уебсайтове и достъп до уеб страници. Едно предимство пред HTML Unit Driver е, че той може да заснема екранни снимки. Това означава, че тестът ви ще работи във фонов режим и ще заснеме екранните снимки.
За да използваме браузъра PhantomJS с Selenium WebDriver, трябва да използваме и изтеглим GhostDriver. Това е реализация на WebDriver жичен протокол в прост JS за браузъра PhantomJS. Сега в последната версия на PhantomJS те бяха интегрирали GhostDriver с PhantomJS. По този начин не трябва да го инсталираме отделно сега.
Изтеглете файла PhantomJs.exe от тук: PhantomJs
За да изпълним PhantomJS, ние се нуждаем от драйвер за PhantomJS. Линк за изтегляне: Драйвер на PhantomJS
И ние трябва да зададем PhantomJs.binary.path файл със свойства, когато изпълним скрипта.
Вижте кода по-долу:
//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()); } }
Изход : https://www.facebook.com/
ПРИЛОЖЕН: verifyFacebookTitle
# 3) Драйвер на Mozilla Firefox
Как да стартирам WebDriver в браузъра Firefox:
За извикване на Firefox Driver няма нужда да инсталирате или конфигурирате допълнителни jar файлове. Това е драйверът по подразбиране, който Selenium WebDriver поддържа.
Вижте кода по-долу за изпълнение:
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'); } }
Изход : Заглавието на страницата съвпада
МИНАЛ : Test_Gmail_Login
# 4) Google Chrome Driver
Как да стартирам WebDriver в браузъра Chrome:
За извикване на Google Chrome Driver първо изтеглете драйвера, след това задайте системно свойство, като използвате кода по-долу:
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()); } }
Изход : Добре дошли в rediff.com
Rediff.com: Онлайн пазаруване, Rediffmail, Последни новини от Индия, Бизнес, Боливуд, Спорт, Запас, Резултати от крикет на живо, Пари, Рецензии
МИНАЛ : Test_Rediff_Alert
Прочетете също=> Урок за селен - Намерете елементи в браузърите Chrome и IE
# 5) Драйвер на Internet Explorer
Как да стартирам WebDriver в браузъра IE:
За извикване на Internet Explorer Driver изтеглете драйвера и задайте системно свойство.
Вижте кода по-долу:
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); } }
Изход : Google
МИНАЛ : ieDriver
# 6) Opera Driver
За извикване на Opera Driver изтеглете драйвера и задайте системно свойство.
Вижте кода по-долу:
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()); } }
Изход : Създай профил
МИНАЛ : operaDriver
Прочетете също=> Анотации на TestNG в селен
Заключение
В този урок разгледах как да настроя и използвам драйвери за различни браузъри.
Видяхме как HTML Unit Driver и PhantomJS Driver се различават от другите често използвани браузъри. Причината за това е, че те не се използват за често сърфиране като Google Chrome и други; вместо това те работят вътрешно и изпълняват командите ни по-бързо, тъй като не поддържа GUI. Можем да изпълняваме и скриптове от страна на сървъра с PhantomJS.
След като разбрахме как да настроим драйвери и да ги накараме да работят в различни браузъри, трябва да сме наясно защо правим това. Тъй като всички сте наясно, Selenium поддържа само уеб базирани приложения и за да ги отворим се нуждаем от браузър.
Има различни драйвери (обсъдени по-горе) за отваряне на тези браузъри. WebDriver е интерфейс, който съдържа всички абстрактни методи, дефинирани в него. Следователно, ние наричаме тези методи, които са обсъдени в този урок, за да изпълняваме нашите задачи.
най-добрата програма за наблюдение на темп на процесора
Уведомете ни, ако имате въпроси / коментари относно този урок.
Препоръчително четене
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Внедряване на нашия първи скрипт за WebDriver - Урок № 10 за Selenium WebDriver
- Често задавани въпроси за селен
- Как да боравим със сигнали / изскачащи прозорци в Selenium WebDriver - Урок за селен # 16
- Неявно и явно чакане в Selenium WebDriver (Видове чакане на селен)
- Ръководство за генериране на обширни отчети в Selenium WebDriver
- Урок за GeckoDriver селен: Как да използвам GeckoDriver в проекти за селен