how run selenium webdriver different popular browsers
Selenium підтримує лише веб-програми, і для їх відкриття потрібен браузер. Селен може підтримувати різні браузери для автоматизації тестів.
У цьому підручнику ми пояснимо, як налаштувати драйвери для різних браузерів, доступних на ринку.
У сучасній галузі є лише три популярні браузери, які широко використовуються, тобто Google Chrome, Mozilla Firefox та Internet Explorer. Однак Selenium підтримує і інші браузери. Для виконання нашого сценарію в різних браузерах нам потрібен драйвер цього браузера.
=> Прочитайте всі підручники з селену тут
Що ви дізнаєтесь:
- Як налаштувати драйвери для різних браузерів
- Крос-браузерне тестування за допомогою Selenium WebDriver
- Висновок
Як налаштувати драйвери для різних браузерів
Рекомендований інструмент:
# 1) Лямбда-тест
Проведіть тестування автоматизації Selenium на масштабованій, безпечній та надійній хмарній мережі Selenium Grid онлайн. Прискоріть автоматизацію тестування Selenium, одночасно збільшивши охоплення тестами, протестувавши на онлайн-інфраструктурі 2000+ середовищ для настільних комп'ютерів та мобільних браузерів.
Коли ми вперше починаємо з автоматизації селену, наш перший рядок коду виглядає так:
Драйвер WebDriver = новий FireFoxDriver ();
Це означає, що WebDriver є інтерфейсом, і ми визначаємо посилальну змінну (драйвер), тип якої є інтерфейсом.
Тепер будь-який об’єкт, який ми йому присвоюємо, повинен бути екземпляром класу (FireFoxDriver) або будь-якими іншими драйверами, що реалізують цей інтерфейс. У нашому випадку FireFoxDriver - це клас, а інтерфейс - WebDriver.
Коли все наше налаштування драйвера закінчено, ми виконуємо будь-яку команду Selenium, таку як:
driver.getTitle ();
Перегляньте знімок екрана:
новітні засоби тестування автоматизації на ринку
Зараз відбувається те, що внутрішньо створюється HTTP-запит і надсилається до конкретного драйвера браузера, який ми визначили, драйвер браузера використовує цей HTTP-сервер для отримання HTTP-запитів і визначає кроки, необхідні для реалізації команди Selenium.
Створена нами логіка виконується у браузері, потім результат виконання надсилається назад на HTTP-сервер, і він знову відправляє статус у сценарій автоматизації.
Таким чином, після встановлення драйвера ми можемо отримати доступ до всіх вбудованих методів класу драйверів, таких як:
- findElement ();
- закрити ();
- getClass (); і багато іншого
Знімок екрана:
Щоб отримати доступ до цих методів, введіть “ водій. ”У редакторі, і він покаже всі методи, або ви можете натиснути“ ctrl + пробіл ”, і він покаже вам методи.
Перегляньте знімок екрана:
Іноді вбудовані методи недоступні, якщо натиснути “ctrl + пробіл”. Потім вам потрібно перевірити налаштування шляху JAVA_HOME, зроблені в змінній середовища, і переконатися, що вони правильні.
Етапи налаштування змінної середовища:
- Перейдіть до Панелі управління -> Клацніть Система
- Зайдіть в Advance System Settings
- Натисніть кнопку Змінні середовища
- Встановіть шлях до JAVA_HOME, натиснувши нову кнопку.
Selenium постачається із драйвером Mozilla Firefox за замовчуванням, який входить до складу jar-файлу Selenium WebDriver. Ось чому для виклику драйвера Firefox налаштування не потрібні. Якщо ми хочемо використовувати інші браузери, нам потрібно налаштувати його системну властивість.
Рекомендована література => Перехресне тестування браузера за допомогою селенової сітки
Крос-браузерне тестування за допомогою Selenium WebDriver
Тепер ми побачимо налаштування та виконання драйверів у згаданих нижче браузерах:
# 1) Mozilla Firefox
# два) Гугл хром
# 3) Internet Explorer
# 4) Опера
# 5) Ghost Driver або PhantomJS
# 6) Блок HTML
Драйвери для згаданих браузерів (крім PhantomJS та HTML Unit - перегляньте їх нижче) можна завантажити тут: Селен HQ
Припускаючи, що ви всі знаєте про різні браузери, згадані вище, зараз я поясни, що це таке Водій-привид і Драйвер одиниці HTML функціональність та спосіб їх налаштування для вашого сценарію.
# 1) Драйвер модуля HTML
За допомогою цього драйвера ми можемо здійснити тестування браузера без голови, що означає, що для нього немає графічного інтерфейсу, який ви можете бачити, оскільки він працює внутрішньо. І ви не можете виконувати всі операції, як у звичайних браузерах.
Як правило, для тестування драйвер модуля HTML не рекомендується. Однак ми можемо використовувати його, оскільки він швидший, найлегша реалізація WebDriver використовується для генерації тестових даних для передачі вмісту однієї веб-сторінки іншій програмі чи сценарію.
Для використання драйвера HTML Unit немає необхідності встановлювати додаткові API або файли jar. Ви можете використовувати його, коли у вас є автономний файл 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 є те, що він може робити знімки екрана. Це означає, що ваш тест буде виконуватися у фоновому режимі та буде робити знімки екрана.
Для того, щоб використовувати браузер 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
Як запустити WebDriver у браузері Chrome:
Для виклику драйвера Google Chrome спочатку завантажте драйвер, а потім встановіть властивість системи, використовуючи код нижче:
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 завантажте драйвер і встановіть системну властивість.
як відтворити utorrent файл - -
Зверніться до коду нижче:
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
Для виклику 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 та драйвер PhantomJS відрізняються від інших загальновживаних браузерів. Причиною цього є те, що вони не використовуються для звичайного перегляду, наприклад Google Chrome та інших; натомість вони працюють внутрішньо і швидше виконують наші команди, оскільки вони не підтримують графічний інтерфейс. Ми також можемо виконувати сценарії на стороні сервера за допомогою PhantomJS.
Тепер, коли ми зрозуміли, як налаштувати драйвери та змусити їх працювати в різних браузерах, нам слід чітко зрозуміти, для чого ми це робимо. Оскільки ви всі знаєте, Selenium підтримує лише веб-програми, і для їх відкриття нам потрібен браузер.
Для відкриття цих браузерів доступні різні драйвери (обговорені вище). WebDriver - це інтерфейс, який містить усі абстрактні методи, визначені в ньому. Отже, ми називаємо ці методи, які обговорюються в цьому посібнику, для виконання наших завдань.
Повідомте нас, якщо у вас є запитання / коментарі щодо цього підручника.
Рекомендована література
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Вступ до Selenium WebDriver - Підручник з селену №8
- Впровадження нашого першого сценарію WebDriver - Підручник № 10 для Selenium WebDriver
- Поширені запитання щодо селену
- Як обробляти сповіщення / спливаючі вікна в Selenium WebDriver - Підручник з селену No16
- Неявне та явне очікування в Selenium WebDriver (типи очікувань селену)
- Посібник із створення звітів про обсяги в Selenium WebDriver
- Підручник з селену GeckoDriver: Як використовувати GeckoDriver у проектах селену