Сюда буду постить какуюто общую инфу про селениум.
Что такое Selenium?
Selenium – это инструмент для автоматизированного управления браузерами. Наиболее популярной областью применения Selenium является автоматизация тестирования веб-приложений. Однако при помощи Selenium можно (и даже нужно!) автоматизировать любые другие рутинные действия, выполняемые через браузер.
Ну, а начну пожалуй с того что есть официальный сайт и сайт на русском.
Моё знакомство с Селениум началось с Selenium IDE, что по сути есть плагин для FireFox-а,которое позволяет записывать и воспроизводить действия пользователя в браузере. Но с ним иногда приятно просто считерить и записать тест что бы потом перекинуть его(тест) в среду разработки и потом с ним делать какие-то махинации.
надо про это потом написать
Для того что бы запускать тесты на Селениум, я( по совету друзей):
- Сделал папку TOOLS на системном диске и прописал её в системной PATH(как с JAVА-ой)
- Добавил в эту папку драйвера(ну или вспомогательные исполняемые файлы) для браузером которые я хочу запускать в тестах. Взять эти драйвера можно вот тут в разделе Third Party Browser Drivers.
Ну а если заморачиватся, то вот ссылки прямые на эти драйвера chromedriver, geckodriver(Для FireFox), IEDriverServer (для браузеров IE 7-11), MicrosoftWebDriver (для браузера Edge).
Ну помимо обычных браузеров есть еще так называемые Ненастоящие браузеры. Один из них это PhantomJS с остальными пока дело не имел.
Если что будет допишу ;)
Ну вот мы добалили все драйвера и у нас установлены все браузеры(глупо пытаться запускать что-то что не установленно).
Переходим к коду: Первый мой тест на JAVA выглядел вот так:
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import static org.openqa.selenium.support.ui.ExpectedConditions.titleIs;
public class MyFirstTest {
private WebDriver driver;
private WebDriverWait wait;
@Before
public void start(){
driver = new ChromeDriver();
wait = new WebDriverWait( driver, 10);
}
@Test
public void myFirstTest(){
driver.get("http://www.google.com/");
driver.findElement(By.name("q")).sendKeys("webdriver");
driver.findElement(By.name("btnG")).click();
wait.until(titleIs("webdriver - Поиск в Google"));
}
@After
public void stop(){
driver.quit();
driver = null;
}
}
Думаю что надо немного пройтись и обьяснить что к чему(что б и самому не забыть)
- Импорт подбрасывается автоматически
- Класс MyFirstTest название
- private WebDriver driver и private WebDriverWait wait - обьявление двух локальных переменных.
- @Before - то что должно быть выполнено перед тестом(надстройка) может быть вынесена в другой класс(файл) и быть общая для всех тестов. Внутри мы создаем новый driver для Chrome можно прописать другое значение и тогда может запуститься другой драйвер
- @Test - сам по себе тест
- driver.get(“http://www.google.com/”); - переходим на страницу www.google.com/
- driver.findElement(By.name(“q”)).sendKeys(“webdriver”); - находим на странице элемент по имени q и внего передаём webdriver
- driver.findElement(By.name(“btnG”)).click(); - находим элемент по имени btnG и жмём на него
- wait.until(titleIs(“webdriver - Поиск в Google”)); - ждем пока тайтл не сменится на webdriver - Поиск в Google
- @After - То что должно быть выполнено после теста(как и @Before может быть вынесено в отдельный класс) останавливаем и закрываем драйвер и соответственно и браузер.
Вот первый тест написан и пройден. УРА!