Как настроить selenium-webdriver для работы с chrome и opera?
Может ли кто то помочь на реальном примере....
Было бы ещё лучше если под nux системами, настраиваю тестирование под Debian.
Как настроить selenium-webdriver для работы с chrome и opera?
Может ли кто то помочь на реальном примере....
Было бы ещё лучше если под nux системами, настраиваю тестирование под Debian.
Очень хочется ответить: "взять и настроить". Но, Ok:
а есть какая-то конкретная проблема, что не работает? переписывать части мануала как-то не хочется :)
В системе интеграции (team city) создал два проекта с разными параметрами в строке запуска, для ие и для фаерфокс. при запуске любого из этих проектов, переменная со значением браузера передается мавену и подставляется в профиль помника в качестве системной переменной. В BaseClass фреймверка сделал метод getDriver, в котором находится ветвление. В зависимости от значения системной переменной - типа браузера, переданной через мавен, инициализуруется необходимый драйвер.
В результате все обращения к драйверу проходят в одном месте, через статический метод getDriver. Сам экземпляр драйвера, при этом, реализован снглтоном. И если он уже был инициализирован, отдается текущий инстанс.
Можно как-то так (работаю с гридом):
private DesiredCapabilities setDesireCapabilities() {
DesiredCapabilities capability;
switch (browser) {
case FIREFOX:
capability = DesiredCapabilities.firefox();
break;
case CHROME:
capability = DesiredCapabilities.chrome();
capability.setCapability("chrome.switches", Arrays.asList("--ignore-certificate-errors"));
break;
case IE:
capability = DesiredCapabilities.internetExplorer();
capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
break;
default:
// ...
break;
}
if (capability != null) {
capability.setBrowserName(getBrowserName(browser));
capability.setPlatform(platform);
}
return capability;
}
protected RemoteWebDriver initDriver() {
DesiredCapabilities capabilities = setDesireCapabilities();
try {
return new RemoteWebDriver(new URL(Context.gridHub), capabilities);
} catch (MalformedURLException e) {
logger.error(e);
return null;
}
}
Единственная оговорка: все это дело чувствительно к платформе. Например, IE работает только под Windows.
Столкнулася с проблемой, где необходимо реализовать тесты для многих браузеров (Chrome, Mozilla, IE), для двух типов ОС (Windows 7 и Linux) одного и того же типа. Реализовал так:
1) Создаем в TeamCity двух агентов (Windows и Linux) соотвественно.
2) Разделяем тесты по имени файла (пишу на java), по тому имена такие:
*IntTestLinux.java
*IntTestWindows.Java
3) Настроил Maven (через profiles) на разделение по типу ОС (Maven в состоянии определить из какой ОС запущен), для значений ОС unix запускаются тесты по шаблону имени *IntTestLinux.java для Windows соотвественно по шаблону *IntTestWindows.Java
4) Агенты осуществляют сборку проекта, его разворачивание и запуск тестов после каждого коммита для обоих ОС.
В итоге, получаем варианты тестов под каждую ОС, где выбирается тип теста под нужную ОС после сборки проекта. Если непонятно рассказал, могу привести кусок pom.xml.
Всем доброго дня!
если я правильно понял из http://code.google.com/p/selenium/wiki/OperaDriver, чтобы перейти от ФФокса к Опере, достаточно создать вебдрайвер:
WebDriver driver = new OperaDriver();
так ли это?
у меня написан тест, прекрасно работающий с ФФоксом. Попытался переделать под Оперу, создав новый вебдрайвер (переписал одну строчку), и разумеется тест работать перестал.
Чувствую, что где то туплю, но не могу понять где, т.к. с Селениумом только начал работать.
надо подключать какие-то библиотеки или драйвер специально для Оперы? (слишком посто выглядит замена одной строки кода).
Подскажите пожалуйста, хотя бы в кратце, что конкретно надо сделать.
Начни с простого, драйвер подключился? Браузер открылся? Какую ошибку выдает? В какой ОС запускаешь тест? Какая версия Selenium и Opera?
Могу посоветовать добавить (подключить) библиотеку вэбдрайвера оперы - https://github.com/operasoftware/operadriver/downloads Попробуйте добавить в проект ярники (operadriver-v0.14-source.jar и operadriver-v0.14.jar) из архива. Если не получится, будем смотреть дальше...
браузер не открывается. сразу выдает ошибку "java.lang.NullPointerException". в коде ругается на testUntitled:
ОС - Винда 7, selenium-server-standalone-2.21.0, Opera 11.64
Подключение библиотек не помогло (все осталось так же), к тому же, если я правильно понял, в Selenium биллиотеки для оперы уже есть.
У меня инициализация Opera Webdriver проходит абсолютно аналогично как Firefox Webdriver. Единственное, что добавил библиотеки Оперы и прописал импорт "import com.opera.core.systems.OperaDriver;" Остальное всё так же как и при ФФ. У меня Винда 7, Opera - 12, selenium-java-2.19.0, selenium-java-2.19.0-srcs, selenium-server-standalone-2.19.0. Тесты на Опере гоняются без проблем.
Для Хрома в тесте указывается путь к драйверу. который запускается при старте теста. и все работает (ну хотябы запускается браузер и открывается нужная страница). а если этот путь не прописывать, то результат точно такой же, как и с Оперой (начинает ругаться на public void testUntitled() throws Exception {, только видимо по другой причине, т.к. ошибка другая).
После этого сразу появляется желание скачать такой же .exe для оперы, указать к нему путь и любоваться работой. Но похоже, что для оперы такого нет. В ФФоксе такая же броблема с такой же как у оперы ошибкой появляется, если удалить "driver = new FirefoxDriver();". То есть проблема, видимо, с драйвером Оперы. вот только как ее решить