Архив рубрики: Selenuim WebDriver

No repository found at в eclipse





Многие наверняка сталкивались с такой вот проблемой, что при Help — Check for Updates в Eclipse возникала ошибка No repository found at и куча всяких ошибок.
Вообщем то я сразу просек, что ошибка из-за того, что обновления пытаются обновиться через пути, в которых уже нет библиотек, которые раньше там были. Допустим подключали джарник селениума, который лежал раньше по одному пути, потом вы его удалили и подключили джарник из другой папки. Или тестнг вы обновляли по одной ссылке, а потом стали обновлять по другой.
Но вот как сделать так чтобы по старым путям не было обновлений я нашел не сразу.

Читать далее

Как я заавтотестил счетчик сообщений. Часть 2





В статье Как я заавтотестил счетчик сообщений. Часть 1 я расписал, как я заавтотестил счетчик сообщений при переносе контакта из одной папки в другую, вернул тест в исходное состояние и опять же сделал проверку, что тест в это исходное состояние вернулся.

В этой статье я хочу написать, как я заавтотестил уменьшение счетчика при прочтении сообщений.

А о том, как я заавтотестил переписку, читать тут. И так, если вы прочитайте :

Как я заавтотестил переписку между юзерами через WebDriver на Java

Как я заавтотестил счетчик сообщений. Часть 1.

Читать далее

Как я заавтотестил счетчик сообщений. Часть 1.





Как я заавтотестил переписку между юзерами я писал тут

В этой статье я более или менее подробно расписал какой структуры написания автотестов я придерживаюсь. В этой статье, я хотел бы описать, как я заавтотестил работоспособность счетчика сообщений. Для начала я бы хотел в виде скриншетов показать и рассказать, как на сайте, который я тестирую, работают счетчики.

Читать далее

Как я заавтотестил переписку между юзерами через WebDriver на Java





В этой записи хочу написать о том, как я заавтотестил переписку. Хочу только отметить какое какие моменты. Автотесты я пишу в стиле DSL, которому научился благодаря курсам Алексея Баранцева, а именно Программирование для тестировщиков

Коротко говоря, у меня два пакета с тестами, в одном пакете чисто хелперы, в которые запихана реализация методов, в другом пакете чисто тесты состоявшие из этих методов. Тесты пишу на java.

К примеру мой тест по авторизации выглядит следующем образом:

Читать далее

Как установить TestNG в Eclipse





В прошлых записях я писал:

1. Установка Eclipse

2. Как создать Java проект в Eclipse

3. Как установить библиотеку Selenium в Eclipse

Теперь я хочу написать как установить TestNG. TestNG — это фраемворк для тестирования, наподобие Junit, только гораздо лучше. Мне кажется кто попробовал использовать TestNg, уже никогда не вернется к Junit. Главное преимущество TestNg, это возможность запускать все тесты одним xml файлом.

Читать далее

Как установить библиотеку Selenium в Eclipse





В прошлых записях я писал:

1. Установка Eclipse

2. Как создать Java проект в Eclipse

Тут я хочу написать как установить библиотеку Selenium в Eclipse для java проекта. Для этого нам необходимо скачать эту самую библиотеку. Скачивать ее необходимо по следующей ссылке

Читать далее

Задрало NoSuchElementException в Selenium WebDriver





Сегодня 22.09.2011, в этот прекрасный выходной день, я решил поработать и позапускать своей автотесты на java в версии фаерофокса 15.0.1 с последней версией selenium-server-standalone-2.25.0.jar

И что же я замечаю, а я замечаю что чуть ли не половина моих тестов падает, на элементах, локаторы которых находятся правильно и всю жизнь находились правильно, но тут не с того ни с сего все падают с ошибкой:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {«method»:»css selector»,»selector»:»div#NewFolders»}
Command duration or timeout: 30.12 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: ‘2.25.0’, revision: ‘17482’, time: ‘2012-07-18 21:08:56’
System info: os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.6.0_26’
Driver info: driver.version: RemoteWebDriver
Session ID: 4ee39de5-9dcd-4e4f-866f-51f31f0d99d6

И т д

Запустил все «проблемные» тесты в хроме и все они идеально прошли. Меня уже просто задрало, что с выходом новой версии фаерфокса селениум перестает нормально работать, почему с хромом нет таких проблем? Вывод: запускайте автотесты в хроме и не партесь.



Как установить Groovy консоль.





Что такое Groovy я писать не буду, об этом вы сможете прочитать в wikipedia. Скажу только, что Groovy позволяет писать код на Java без лишних оберток, в стиле Ruby или Python. Но я буду рассказывать здесь не про сам язык Groovy, а про установку Groovy консоли, которая позволяет отлаживать автотесты написанные на java. B в groovy консоли это действительно очень удобно делать.

Для начала скачаем бинарный дистрибутив с официального сайта Groovy http://groovy.codehaus.org/Download

На момент написания статьи это Groovy 2.0.4

Для того, чтобы у вас работал Groovy, вам необходимо поставить java на свой компьютер, об этом я писал в статье «Установка JAVA. Отличие JDK от JRE»

Распаковываем архив и переносим папку groovy-2.0.4 в удобное нам место, у меня это диск C

Далее необходимо прописать все необходимые переменные окружения.

Для этого (В windows 7) Щелкаем правой кнопкой мыши на «Мой компьютер» — «Свойства» —

«Дополнительные параметры системы» —- переключаемся на вкладку «Дполнительно» —- нажимаем на «Переменные среды» в открывшемся окне в «системные переменные» нажимаем «Создать», в имя переменной пишем GROOVY_HOME  в значении переменной C:\groovy-2.0.4 ( указываем путь куда вы перенесли папку groovy-2.0.4) Нажимаем «Ок»

 

Далее  ищем в списке системных переменных, переменную «Path» щелкаем по ней, вписываем туда дополнительный путь  » C:\groovy-2.0.4\bin», нажимаем «Ок»

 

Все, установка Groovy консоли завершена. Теперь чтобы открыть нашу Groovy консоль необходимо нажать «Пуск» — в поле «Найти программы и файлы» ввести «cmd»— нажать на найденный файл cmd.exe

В обработчике команд перейти на C:\groovy-2.0.4\, ввести команду groovyConsole, нажать Enter

 

и у вас откроется вот такая симпатичная консолька.

На этом все, как пользоваться самой groovy консолью вы можете посмотреть в этом видео от Алексея Баранцева:

 





Как я использую регулярные выражения в своих автотестах





Встала передо мной как то задача, в автотестах сделать отображение на определенной странице определеных цифр
А именно на сайте есть примерно 15-20 лаеров, где мне необхоимдо проверить присутствие в одном поле цифр 5554 или 5111 или 1055 цифры всегда разные, а в другом  99+5454878787 или 93+48976564564  или 91+65656598 и т д

В итоге на каждый странице каждый текст с цифрами я решил проверять через регулярное выражение.

Через http://gskinner.com/RegExr/
Под первую строчку делаем регулярку 99\+\d{5,}
Под вторую \d{4}

Тест в java при помощи WebDriver я проверяю как

assertTrue(findElement(By.tagName(«body»)).getText().contains(«текст»));

(Если вы проверяйте как-то по-другому, то напишите, очень интересно)

В Java при проверке каждого лаера я попытался сделать проверку через регулярные выражения следующее:
assertTrue(findElement(By.tagName(«body»)).getText().

contains(«93\\+\\d{5,}»)); //+экранируем
assertTrue(findElement(By.tagName(«body»)).getText().

contains(«\\d{4}»));

Но автотест падал на этих же строчках, тогда добрые люди мне подсказали, что

Сontains это не для проверки на соответствие регулярному выражению, это просто проверка подстроки и для регулярных выражений нет матчера стандартного и посоветовали используать вот эту дополнительную библиотеку: https://code.google.com/p/hamcrest-text-patterns/

(Кстати я ее так и не использовал, кто использовал, дайте знать)

Я сделал так:

String text = findElement(By.cssSelector(«var.sms-text»)).getText();
Pattern p = Pattern.compile(«93\\+\\d{5,}»);
Matcher m = p.matcher(text);
if (m.matches()) {
System.out.println(text);
};

String text1 = findElement(By.cssSelector(«div.fl-r div.numberHint+span»)).getText();
Pattern p1 = Pattern.compile(«\\d{4}»);
Matcher m1 = p1.matcher(text1);
if (m1.matches()) {
System.out.println(text1);
};

Хотя, если бы не было полей, откуда я бы мог gettext()-ом вытащить нужные мне значения, то тогда пришлось бы заморочиться.