В этом блоге я буду обсуждать последнюю версию селена, то есть Selenium 3. Чтобы использовать selenium 3, нам нужен драйвер Gecko для запуска тестов в браузере Mozilla.
Итак, первый вопрос, который возникает у нас в голове, «Что такое Gecko?»
Gecko — это название механизма компоновки, разработанного проектом Mozilla. … Функция Gecko заключается в чтении веб-контента, такого как HTML, CSS, XUL, JavaScript, и отображении его на экране пользователя или печати.
Протокол WebDriver реализуется Firefox с помощью исполняемого файла с именем GeckoDriver.exe. Он запускает сервер в вашей системе. Все ваши тесты взаимодействуют с этим сервером для запуска тестов. Он действует как прокси-сервер между локальным и удаленным концами и переводит вызовы в протокол автоматизации Marionette. Чтобы использовать Marionette или Firefox с Selenium 3, вам нужно всего лишь:
- Установите geckodriver.exe в вашей системе.
- Добавьте путь к geckodriver.exe в свой код.
- Используйте Firefox в своем коде.
В настоящее время я использую Firefox 49.0 и Ubuntu 16.04 LTS.
Вот пример кода:
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
/**
* Created by swati on 18/10/16.
*/
public class FirstTest {
public static void main(String [] args){
System.setProperty("webdriver.gecko.driver","/home/sid/Downloads/geckodriver");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
WebDriver driver = new FirefoxDriver(capabilities);
String url = "https://www.amazon.in/";
driver.get(url);
System.out.println("Successfully opened the website www.amazon.com");
try {
Thread.sleep(5);
} catch (Exception e) {
e.printStackTrace();
}
String title = driver.getTitle();
int titleLength = driver.getTitle().length();
System.out.println("Title of the page is : " + title);
System.out.println("Length of the title is : "+ titleLength);
String actualUrl = driver.getCurrentUrl();
if (actualUrl.equals(url)){
System.out.println("Verification Successful - The correct Url is opened.");
}else{
System.out.println("Verification Failed - An incorrect Url is opened.");
System.out.println("Actual URL is : " + actualUrl);
System.out.println("Expected URL is : " + url);
}
String pageSource = driver.getPageSource();
int pageSourceLength = pageSource.length();
System.out.println("Total length of the Page Source is : " + pageSourceLength);
driver.close();
}
}
Enjoy :)
You can find a demo project using selenium 3 with gecko driver on my repo : Selenium3withGeckoDriver
Reference:
https://github.com/mozilla/geckodriver