Перейти к содержимому

Публикации Breetonia

76 публикаций создано Breetonia (учитываются публикации только с 16 июня 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...



#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.: Первые два видеоурока Баранцева не дали ответа на поставленный вопрос.



#107156 Проверка сабмита формы

Отправлено автор: Breetonia 27 июня 2012 - 11:44 в Selenium - Functional Testing

Спасибо вам,ребят : )).Я уже решил проблему(надеюсь,что верно) альтернативным способом - Сравнил таитлы логин пейдж и индекс пейдж(страница после успешной авторизации) и всё заработало ).
Единственная проблема,которая остается - как адекватно выставить имплицитные ожидания(поставил 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 движка через сиесту)).Примеры если и есть,но достаточно громоздкие.Это наводит на мысль,что автоматизировать тестирование интерфейса нахрен не нужно...В итоге,что делать,я не знаю.



#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,чтобы словить новое состояние элемента,но практически реализовать не могу,ибо не сталкивался с таким.



#107162 Исходный код

Отправлено автор: Breetonia 27 июня 2012 - 20:00 в Selenium - Functional Testing

Баранцев в своем втором(по счету) видеоуроке говорил,что возможность видеть скрытые элементы убрали(она была в RC1)из WebDriver потому,что пользователю это нафиг не нужно.
По поводу исходников - смотрите фаирбагом.Если уж и там не показывает,то,вероятно,данные возвращаются аяксом,например,в 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 - Скопировал с сайта



#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 я видел,как ей присваивается в качестве значения целый массив.Вот,этот массив и нужен...Что делать ? Как его получить ?



#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

Сам по нему делал : )