- Форум тестировщиков
- → Публикации Breetonia
Публикации Breetonia
76 публикаций создано Breetonia (учитываются публикации только с 24 сентября 2023)
По типу контента
По пользователю
#106998 Selenium WebDriver,JUnit и Assert.isTrue - зачем ?
Отправлено автор: Breetonia 22 июня 2012 - 11:33 в Selenium - Functional Testing
Меня ввело в ступор из статьи на сайте http://bugscatcher.net/archives/1232 описание Assert-ов для селениум вебдрайвер.
Зачем они нужны ? Это какая-то замена тестирования WebDriver через JUnit(т.е. я могу про JUnit вообще забыть) ?
Я пишу метод,тестирующий авторизацую на проекта(классика).Нужно его протестировать.Ситуация следующая - при отправке верных данных,форма их кушает и редиректит внутрь проекта,иначе на странице авторизации
появляется айдишник,в котором хранится текст ошибки.Поэтому я решил использовать assert-ы.
Тестировать буду в JUnit 4.Какой assert тут использовать ? Потому как остальные,на мой взгляд,не подходят,т.к. мне нужно либо проверять присутствие элемента на странице,либо текст этого элемента(при условии,что он,опять-таки,присутствует)
Опыт написания тестов на JUnit у меня 0,так что строго не судите.
Везде примеры с RC1,тогда как мне надо на RC2...
Зачем они нужны ? Это какая-то замена тестирования WebDriver через JUnit(т.е. я могу про JUnit вообще забыть) ?
Я пишу метод,тестирующий авторизацую на проекта(классика).Нужно его протестировать.Ситуация следующая - при отправке верных данных,форма их кушает и редиректит внутрь проекта,иначе на странице авторизации
появляется айдишник,в котором хранится текст ошибки.Поэтому я решил использовать assert-ы.
Тестировать буду в JUnit 4.Какой assert тут использовать ? Потому как остальные,на мой взгляд,не подходят,т.к. мне нужно либо проверять присутствие элемента на странице,либо текст этого элемента(при условии,что он,опять-таки,присутствует)
Опыт написания тестов на JUnit у меня 0,так что строго не судите.
Везде примеры с RC1,тогда как мне надо на RC2...
#107010 Selenium WebDriver,JUnit и Assert.isTrue - зачем ?
Отправлено автор: Breetonia 22 июня 2012 - 16:35 в Selenium - Functional Testing
Ладно,перефразирую - какой ассерт использовать для проверки существования вэб элемента и его атрибута/атрибутов(комбинированное условие) ?
#107142 Проверка сабмита формы
Отправлено автор: Breetonia 27 июня 2012 - 07:04 в Selenium - Functional Testing
Ситуация следующая:
Мне нужно написать тестовый метод,проверяющий,что кнопка сабмит нажата успешно(сообщение об ошибке не выходит в браузере).
Сами действия в эклипсе я программно воспроизвел,но после редиректа на внутреннюю страницу сайта(после авторизации),тестовый метод ждет и вылетает
по таймауту,установленному имплицитными ожиданиями.Мне этого не нужно.Мне нужно,чтобы выполнение метода прекращалось сразу после успешной авторизации и выполнялся assertTrue,но как мне проверить,что вход произошел ? После submit() я сразу оказываюсь авторизованным и selenium,как я писал выше,тупит и вываливается с ошибкой.Собственно,дальнейшее тестирование не представляется возможным.
Я решил сделать так: проверить хидер Location до сабмита и после сабмита.Если они отличаются,значит,редирект успешно произошел и я оказался успешно авторизован,но в селениуме я не нашел чего-либо,предусматривающего работу с хидерами или запросами/ответами.
Я так понимаю,что это нужно реализовать на Java,но тогда придется вообще забыть про Селениум,а реализовывать всё чуть ли не с нуля или использования готовых java libraries.Так что делать ?
P.S.: Первые два видеоурока Баранцева не дали ответа на поставленный вопрос.
Мне нужно написать тестовый метод,проверяющий,что кнопка сабмит нажата успешно(сообщение об ошибке не выходит в браузере).
Сами действия в эклипсе я программно воспроизвел,но после редиректа на внутреннюю страницу сайта(после авторизации),тестовый метод ждет и вылетает
по таймауту,установленному имплицитными ожиданиями.Мне этого не нужно.Мне нужно,чтобы выполнение метода прекращалось сразу после успешной авторизации и выполнялся assertTrue,но как мне проверить,что вход произошел ? После submit() я сразу оказываюсь авторизованным и selenium,как я писал выше,тупит и вываливается с ошибкой.Собственно,дальнейшее тестирование не представляется возможным.
Я решил сделать так: проверить хидер Location до сабмита и после сабмита.Если они отличаются,значит,редирект успешно произошел и я оказался успешно авторизован,но в селениуме я не нашел чего-либо,предусматривающего работу с хидерами или запросами/ответами.
Я так понимаю,что это нужно реализовать на Java,но тогда придется вообще забыть про Селениум,а реализовывать всё чуть ли не с нуля или использования готовых java libraries.Так что делать ?
P.S.: Первые два видеоурока Баранцева не дали ответа на поставленный вопрос.
#107156 Проверка сабмита формы
Отправлено автор: Breetonia 27 июня 2012 - 11:44 в Selenium - Functional Testing
Спасибо вам,ребят : )).Я уже решил проблему(надеюсь,что верно) альтернативным способом - Сравнил таитлы логин пейдж и индекс пейдж(страница после успешной авторизации) и всё заработало ).
Единственная проблема,которая остается - как адекватно выставить имплицитные ожидания(поставил 10 секунд),т.е. каждый элемент будт искаться в течение 10 секунд,а что если сервер будет перегружен и ответить только через 30 секунд ?
Вешать блок try/catch,перехватывающий ConnectionError иксепшн(или ему сопутствующий) на каждый тестовый метод ? Кстати,где можно глянуть список именно иксепшнов,чтобы гугл не долбить ? ))
Единственная проблема,которая остается - как адекватно выставить имплицитные ожидания(поставил 10 секунд),т.е. каждый элемент будт искаться в течение 10 секунд,а что если сервер будет перегружен и ответить только через 30 секунд ?
Вешать блок try/catch,перехватывающий ConnectionError иксепшн(или ему сопутствующий) на каждый тестовый метод ? Кстати,где можно глянуть список именно иксепшнов,чтобы гугл не долбить ? ))
#106716 Проблема автоматизации ExtJS компонентов...
Отправлено автор: Breetonia 14 июня 2012 - 19:09 в Selenium - Functional Testing
Проблема ещё и в том,что ExtJS генерирует id после генерации DOMа.Айдишники у некоторых элементов есть(жестко заданные),но они далеко не у всех.
#106715 Проблема автоматизации ExtJS компонентов...
Отправлено автор: Breetonia 14 июня 2012 - 19:05 в Selenium - Functional Testing
Вечер добрый.Столкнулся с тем,что нужно как-то автоматизировать кучу компонентов(около 50).
Проект состоит из PHP 5(фрэймворк),ExtJS 3.х и AJAX+JSON.
Встретил просто ТУЧУ средств автоматизации,но выбор пал почему-то на Siesta.
Документация в проекте есть,какие-то доки пишет другой тестировщик = ))(Пока сам не до конца осознает,что он делает,отвечать не особо настроен)))
В итоге непонятно,как проводить функциональное тестирование,поскольку непонятно,с чем сравнивать assert(что ожидать,что передавать)
Как думал я - получить список форм по их id,составить что-то вроде списка и создать генератор форм в обход интерфейса,но это бред - это уже не тестирование интерфейса,а тестирование php движка через сиесту)).Примеры если и есть,но достаточно громоздкие.Это наводит на мысль,что автоматизировать тестирование интерфейса нахрен не нужно...В итоге,что делать,я не знаю.
Проект состоит из PHP 5(фрэймворк),ExtJS 3.х и AJAX+JSON.
Встретил просто ТУЧУ средств автоматизации,но выбор пал почему-то на Siesta.
Документация в проекте есть,какие-то доки пишет другой тестировщик = ))(Пока сам не до конца осознает,что он делает,отвечать не особо настроен)))
В итоге непонятно,как проводить функциональное тестирование,поскольку непонятно,с чем сравнивать assert(что ожидать,что передавать)
Как думал я - получить список форм по их id,составить что-то вроде списка и создать генератор форм в обход интерфейса,но это бред - это уже не тестирование интерфейса,а тестирование php движка через сиесту)).Примеры если и есть,но достаточно громоздкие.Это наводит на мысль,что автоматизировать тестирование интерфейса нахрен не нужно...В итоге,что делать,я не знаю.
#107161 JavascriptExecutor всегда возвращает null
Отправлено автор: Breetonia 27 июня 2012 - 19:57 в Selenium - Functional Testing
проблема решена ((JavascriptExecutor)getWebDriver()).executeScript("return 1").toString();
return тут не обязателен,хотя и так работает : ).Во всяком случае,у меня.
Точно также пытался позавчера сделать,в итоге отбросил вариант с экзекутором за ненадобностью.
#107163 Исходный код
Отправлено автор: Breetonia 27 июня 2012 - 20:02 в Selenium - Functional Testing
Вообще,первое предложение смахивает на тафтологию - селениум 2.0,селениум рс2,вебдрайвер - одно и то же.На кой черт придумывать столько названий для одного продукта(в определенной его стадии развития) ? Ведь и там,и там всё включено,разве нет ?!
#107235 Исходный код
Отправлено автор: Breetonia 02 июля 2012 - 07:07 в Selenium - Functional Testing
Сдаётся мне,что DOM у тебя динамически изменяется,подставляя переменные из шаблона ( x{2} и прочие).
Думаю,что тебе нужно ждать изменения состояния аттрибута title (он же появляется таки) и выдрать изменившиеся данные.
Для этого нужно использовать WebDiverWait,чтобы словить новое состояние элемента,но практически реализовать не могу,ибо не сталкивался с таким.
Думаю,что тебе нужно ждать изменения состояния аттрибута title (он же появляется таки) и выдрать изменившиеся данные.
Для этого нужно использовать WebDiverWait,чтобы словить новое состояние элемента,но практически реализовать не могу,ибо не сталкивался с таким.
#107162 Исходный код
Отправлено автор: Breetonia 27 июня 2012 - 20:00 в Selenium - Functional Testing
Баранцев в своем втором(по счету) видеоуроке говорил,что возможность видеть скрытые элементы убрали(она была в RC1)из WebDriver потому,что пользователю это нафиг не нужно.
По поводу исходников - смотрите фаирбагом.Если уж и там не показывает,то,вероятно,данные возвращаются аяксом,например,в JSONе(что необязательно),как у меня : ) - такое фаирбаг не умеет без рефреша(опять-таки,рефреша в хтмл вкладке фаирбага нету : ( ).
По поводу исходников - смотрите фаирбагом.Если уж и там не показывает,то,вероятно,данные возвращаются аяксом,например,в JSONе(что необязательно),как у меня : ) - такое фаирбаг не умеет без рефреша(опять-таки,рефреша в хтмл вкладке фаирбага нету : ( ).
#107056 Исходный код
Отправлено автор: Breetonia 25 июня 2012 - 09:20 в Selenium - Functional Testing
А через WebElement.findElement(By.xPath("//div[@title=\"blablabla\"")) никак ?
#107177 Как работать с Ajax элементами ?
Отправлено автор: Breetonia 28 июня 2012 - 08:39 в Selenium - Functional Testing
Так,спросил:
Форма создана по принципу формы,выложенной на сайте http://examples.extjs.eu/
http://pastebin.com/7S3ezHRX - Скопировал с сайта
Форма создана по принципу формы,выложенной на сайте http://examples.extjs.eu/
http://pastebin.com/7S3ezHRX - Скопировал с сайта
#107178 Как работать с Ajax элементами ?
Отправлено автор: Breetonia 28 июня 2012 - 08:47 в Selenium - Functional Testing
Бред какой-то.Вчера этот метод не работал вообще,т.е. выдавал всякую лажу(иксепшны),а сегодня - работает через гетаттрибут(валуе) ).
#107176 Как работать с Ajax элементами ?
Отправлено автор: Breetonia 28 июня 2012 - 08:35 в Selenium - Functional Testing
На работе запретили раздавать код,поэтому могу только сказать,что данные отсылаются PHP скрипту и возвращаются в JSON формате(данные тестируемой формы - имена полей и значения).
Увы...Попробую спросить,как работает.
ЗЫ: Проверял фаирбагом : )
Увы...Попробую спросить,как работает.
ЗЫ: Проверял фаирбагом : )
#107165 Как работать с Ajax элементами ?
Отправлено автор: Breetonia 27 июня 2012 - 20:25 в Selenium - Functional Testing
Фаирбаг не видит значение аякс элементов.getAttribute("value) и getText() возвращают совершенно не то,что нужно(либо текст по дефолту,либо empty).Что делать ? Компонент вроде Ext.formPanel,визуально данные видны в полях(визуально компонент напоминает форму).
#106977 Проблема с проверкой текста элемента
Отправлено автор: Breetonia 22 июня 2012 - 08:07 в Selenium - Functional Testing
Есть кнопка <button id="ext-14">ВХОД</button>
Есть код:
Этот код проходит по всем кнопкам и,если кнопка имеет надпись ВХОД,выводит текст кнопки на консоль(для отладки),но такой пример НЕ РАБОТАЕТ.
Очень интересует почему!
Есть код:
ArrayList<WebElement> buttons = (ArrayList<WebElement>) driver.findElements(By.xpath("//button")); for (int i = 0; i < buttons.size();i++) { String button_text = buttons.get(i).getText(); if(button_text.trim() == "ВХОД") { System.out.println(button_text); } } //driver.quit(); }
Этот код проходит по всем кнопкам и,если кнопка имеет надпись ВХОД,выводит текст кнопки на консоль(для отладки),но такой пример НЕ РАБОТАЕТ.
Очень интересует почему!
#106987 Проблема с проверкой текста элемента
Отправлено автор: Breetonia 22 июня 2012 - 09:18 в Selenium - Functional Testing
Это java?!
Да,это Java = )
#106988 Проблема с проверкой текста элемента
Отправлено автор: Breetonia 22 июня 2012 - 09:22 в Selenium - Functional Testing
Если мне не изменяет склероз, getText() для элемента типа button всегда возвращает пустую строку. Используйте .getAttribute("value").
Нет,изменяет : )).Я практически всегда использую xPATH запросы к DOM узлам,если возможность не подвернется получше : ).
У наших button-ов кроме inner ничего нету,например:
<button id="b1" name="but1">I am button</button>
value,как я понимаю,здесь нет,и getText() возвращает I am button.В Javadoc подробнее не написано(про иннер).
#106978 Проблема с проверкой текста элемента
Отправлено автор: Breetonia 22 июня 2012 - 08:08 в Selenium - Functional Testing
без if всё прекрасно работает...может,кодировка не та ? Как тогда проверять ?
#106986 Проблема с проверкой текста элемента
Отправлено автор: Breetonia 22 июня 2012 - 09:18 в Selenium - Functional Testing
Уф,простите,я уже сгуглил)))Первый нормальный метод пишу...)С Java всегда косяки у меня : )
#107164 Достать значение javascript переменной
Отправлено автор: Breetonia 27 июня 2012 - 20:04 в Selenium - Functional Testing
Тема больше неактуальна : (
#107070 Достать значение javascript переменной
Отправлено автор: Breetonia 25 июня 2012 - 13:43 в Selenium - Functional Testing
Как это можно сделать в Selenium WebDriver
Пример:
Переменная х определена в трех разных js скриптах в одном документе,но в объектном браузере она видна только в одном экземпляре,да ещё и объявлена как null.
В javascript-e я видел,как ей присваивается в качестве значения целый массив.Вот,этот массив и нужен...Что делать ? Как его получить ?
Пример:
Переменная х определена в трех разных js скриптах в одном документе,но в объектном браузере она видна только в одном экземпляре,да ещё и объявлена как null.
В javascript-e я видел,как ей присваивается в качестве значения целый массив.Вот,этот массив и нужен...Что делать ? Как его получить ?
#107367 Поиск элементов по области
Отправлено автор: Breetonia 05 июля 2012 - 19:25 в Selenium - Functional Testing
Дак а зачем это нужно,если пользователь их не видит ? Лично мне непонятно,с какой целью автор собрался это делать.
Как вижу,не я один )).
Как вижу,не я один )).
#107262 Поиск элементов по области
Отправлено автор: Breetonia 02 июля 2012 - 15:39 в Selenium - Functional Testing
А причем тут селениум ? Юзеру это никогда не понадобится : )
#107264 Поиск элементов по области
Отправлено автор: Breetonia 02 июля 2012 - 17:16 в Selenium - Functional Testing
Чтобы сделать элементы доступными,т.е. видимыми,нужно понять,как они скрыты,а это обычно либо visibility:hidden в атрибуте style,либо
атрибут type со значением "hidden".
Для этого в Selenium есть класс JavaExecutor
Тебе же нужно либо сменить visibility:hidden на visibility:visible,либо сменить type="hidden" на подходящий : )
Ссылка на класс: http://selenium.goog...ptExecutor.html
Примеры тут: http://seleniumhq.or..._webdriver.html
Сам по нему делал : )
атрибут type со значением "hidden".
Для этого в Selenium есть класс JavaExecutor
Тебе же нужно либо сменить visibility:hidden на visibility:visible,либо сменить type="hidden" на подходящий : )
Ссылка на класс: http://selenium.goog...ptExecutor.html
Примеры тут: http://seleniumhq.or..._webdriver.html
Сам по нему делал : )
- Форум тестировщиков
- → Публикации Breetonia
- Политика Конфиденциальности
- Правила форума ·