Отладка тестов на IE с помощью частицы Selenium IDE
#1
Отправлено 27 декабря 2011 - 14:57
Я начинающий автоматизатор, использую Selenium и Java.
С самого первого опыта автоматизации полюбил этот инструмент - Selenium IDE, но не за возможность записи и воспроизведения тестов, а за возможность создания примитивной модели будущих тестов, а также, что и является ключевым вопросом данной темы, отладки упавших тестов. Далее будет подробнее.
При исследовании причины падения теста(если она конечно не очевидна) я захожу в Selenium IDE довожу страницу Фаерфокса до состояния, когда запускается "плохая" инструкция и начинаю исследовать, пробовать разные методы (предполагая, что Selenium RC выполнит все также как и Selenium IDE), для того, чтобы найти и устранить причину фейла или зафиксировать факт бага. Практически всегда этот сценарий работает и меня это устраивает.
Но есть одно НО - это отсутствие Selenium IDE для Internet Explorer. И, погуглив и поинтересовавшись, я понял, что нет такого инструмента, который бы позволил мне "на лету" выполнить команды селениума в ИЕ, как это делает Selenium IDE для ФФ.
Это очень печально, учитывая, что многое, работающее на ФФ, категорически отказывается работать на ИЕ...
...Но, если подумать...что такое селениум - это инструмент, который позволяет выполнить JavaScript, эмитируя юзера. Т.е. селениум запускает джаваскрпиты...в ИЕ есть 'F12 developer tools'...которая имеет консоль...которая, в свою очередь понимает, джаваскрипты.
Внимание вопрос - подскажите где я могу узнать какой JavaScript код соответствует какой команде селениума?
Внимание еще вопрос - какие у меня могут возникнуть проблемы при попытки использования JavaScript-команд селениума с помощью консоли 'F12 developer tools'?
П.С. часто слышал от знающих людей, что я должен делать изменения в коде, а затем запускать весь тест, чтобы проверить как эти изменения отработали. Хочу попросить сразу, не советуйте мне этого здесь пожалуйста, т.к. выполнение теста до момента фейла может занимать несколько минут (если он насыщен xpath, то на ИЕ может и 10-15 минут). Меня не устраивает ждать так долго, чтобы проверить вариант исполнения каждой комбинации инструкций. Суть этой темы в том, чтобы используя консоль, в точности эмитировать команды селениума на ИЕ.
Заранее огромное спасибо всем откликнувшимся.
#2
Отправлено 28 декабря 2011 - 06:24
Либо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).
#3
Отправлено 28 декабря 2011 - 07:03
Таких пока нет, но обещают сделатьЛибо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).
Лучше научитесь пользоваться developer tools для нахождения локаторов и будет вам счастье. В большнинстве случаев это вообще не нужно. Так как общая структура документа в основном во всех браузерах одинакова отображаетсяВнимание вопрос - подскажите где я могу узнать какой JavaScript код соответствует какой команде селениума?
Внимание еще вопрос - какие у меня могут возникнуть проблемы при попытки использования JavaScript-команд селениума с помощью консоли 'F12 developer tools'?
И если всё же вы хотите отлаживать тесты в IE юзайте Selenium RC и какую-нибудь IDE для отладки тестов.
#4
Отправлено 28 декабря 2011 - 07:20
Таких пока нет, но обещают сделатьЛибо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).
Есть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)
#5
Отправлено 28 декабря 2011 - 07:34
Я не так понял) впринципе если подумать, то его можно использовать для поиска локаторов и записи тестов в IE) просто потом придётся переделать тесты под методы seleniumЕсть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)
#6
Отправлено 28 декабря 2011 - 07:43
Я не так понял) впринципе если подумать, то его можно использовать для поиска локаторов и записи тестов в IE) просто потом придётся переделать тесты под методы seleniumЕсть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)
Это конечно да... Но зачем? Оно поддерживает IE. Firefox, Chrome, Safari. Не проще ли использовать этот модуль ВМЕСТО селениума (если уж нужна удобная IDE).
#7
Отправлено 28 декабря 2011 - 07:52
Я не слишком хорошо знаком с этим инструментом) Но багов у него хватает)Это конечно да... Но зачем? Оно поддерживает IE. Firefox, Chrome, Safari. Не проще ли использовать этот модуль ВМЕСТО селениума (если уж нужна удобная IDE).
Если юзается только Selenium IDE, то да, вполне хорошая альтернатива.
#8
Отправлено 28 декабря 2011 - 09:34
Вадим, спасибо большое, за ответ и за совет. Учиться пользоваться developer tools - это на самом деле правильно направление, и, таки да, это поможет мне найти локаторы и позволит сделать еще много замечательных вещей.Лучше научитесь пользоваться developer tools для нахождения локаторов и будет вам счастье. В большнинстве случаев это вообще не нужно. Так как общая структура документа в основном во всех браузерах одинакова отображается
И действительно это не очень-то и нужно, учитывая, что в большинстве случаев(практически всегда) локаторы, отработавшие на ФФ, отработают и на ИЕ...
И, если бы команды селениум, отработавшие на ФФ, абсолютно всегда отрабатывали бы на ИЕ, я бы врядли запостил бы эту тему. К сожалению, когда в вашем проекте 1500+ тестов и ИЕ в скоупе, то часто возникает ситуация (особенно с JS), когда команда(или инструкция, но не локатор) не делает того что, вы от нее ожидаете на ИЕ. Но опыт подсказывает вам, что возможно комбинация других команд вам поможет. Вы наверное не раз встречали, да и скорее всего сами делали такое - if([brouser = ie]){[сделай это так]}else{[сделай это иначе]}.
Поэтому, прошу обратить ваше внимание на то, что проблема, обсуждаемая сейчас, не с локаторами, а с разным исполнением команд у ИЕ и остальных.
И если всё же вы хотите отлаживать тесты в IE юзайте Selenium RC и какую-нибудь IDE для отладки тестов.
Согласен - это путь,.. это путь, которым я, к сожалению, сейчас следую.., и этот путь отнимает много времени, т.к., чтобы проверить работоспособность отлаживаемой части теста, мне нужно его запустить и дождаться момента, когда он дойдет точки препинания. Я не говорю уже о том, что часто нужно создать тестовые данные для каждого такого прогона, а их может быть несколько перед тем как найдется приемлемое решение.
В данной теме, я не говорю о выходе из без выходной ситуации, я говорю о том, что выход из подобной ситуации может отнять меньше времени.
#9
Отправлено 28 декабря 2011 - 09:36
#10
Отправлено 28 декабря 2011 - 09:49
Ну у меня нет никаких проблем чтобы юзать Selenium WebDriver+Java+JUnit+Eclipse) поэтому подобных проблем у меня не возникает)И, ребят, разве не интереснее найти способ решить проблему, чем объяснять почему эта проблема не проблема, давайте узнаем как и где достать JS код для команд селениума и как его запустить через консоль.
ну если всётаки хочется идти этим путём, то тогда как вариант можно использовать Selenium RC и его interactive mode)
запускаем сервер
java -jar selenium-server.jar -interactive
открываем новую сессию
cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
метод open юзаем
cmd=open&1=http://www.google.com/webhp&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод type
cmd=type&1=q&2=helloworld&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод клик
cmd=click&1=btnG&sessionId=3ef951a2ba6a481888cd3f8012b65194
Подробнее
Не знаю как вы собираетесь сэкономить время, помоему использование какого-нибудь Eclipse, намного больше сэкономит времени для отладкиВ данной теме, я не говорю о выходе из без выходной ситуации, я говорю о том, что выход из подобной ситуации может отнять меньше времени.
И вы их все автоматизировали???используя только Selenium IDE?1500+ тестов
#11
Отправлено 28 декабря 2011 - 12:11
Мне кажется , что человек немного не про то спрашивал=) cmd=click&1=btnG&sessionId=3ef951a2ba6a481888cd3f8012b65194 это же не JS команда. Он хотел явно что-то типа javascript{alert('hoho')} - и это "забивать" в селениум ИДЕ, как простейший вариант.Ну у меня нет никаких проблем чтобы юзать Selenium WebDriver+Java+JUnit+Eclipse) поэтому подобных проблем у меня не возникает)И, ребят, разве не интереснее найти способ решить проблему, чем объяснять почему эта проблема не проблема, давайте узнаем как и где достать JS код для команд селениума и как его запустить через консоль.
ну если всётаки хочется идти этим путём, то тогда как вариант можно использовать Selenium RC и его interactive mode)
запускаем сервер
java -jar selenium-server.jar -interactive
открываем новую сессию
cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
метод open юзаем
cmd=open&1=http://www.google.com/webhp&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод type
cmd=type&1=q&2=helloworld&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод клик
cmd=click&1=btnG&sessionId=3ef951a2ba6a481888cd3f8012b65194
ПодробнееНе знаю как вы собираетесь сэкономить время, помоему использование какого-нибудь Eclipse, намного больше сэкономит времени для отладкиВ данной теме, я не говорю о выходе из без выходной ситуации, я говорю о том, что выход из подобной ситуации может отнять меньше времени.
И вы их все автоматизировали???используя только Selenium IDE?1500+ тестов
#12
Отправлено 28 декабря 2011 - 12:24
Я не запускаю тесты на Selenium IDE, для создания и прогона тестов использую следующее: Selenium WebDriver&RC, InteliJ IDEA + TestNG. Для прогона Тимсити, для сборки страниц и ядра - Maven.
Проблема у меня с отладкой тестов, упавших на IE, по причине того, что выполнение инструкций селениума на IE отличается.
Я вижу, что по этой теме отвечают достаточно творческие люди, и я попробую задать для вас творческий вопрос - как мне "на лету" (как я это могу сделать в ФФ с помощью Selenium IDE) с эмитировать команды селениума, чтобы понять, что они отработают правильно, когда запустяться билдом континиус интегрейшена?
Мне очень интересно ваше мнение, т.к. вы, очевидно, намного опытнее меня.
Заранее спасибо.
#13
Отправлено 28 декабря 2011 - 12:41
ну если всётаки хочется идти этим путём, то тогда как вариант можно использовать Selenium RC и его interactive mode)
запускаем сервер
java -jar selenium-server.jar -interactive
открываем новую сессию
cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
метод open юзаем
cmd=open&1=http://www.google.com/webhp&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод type
cmd=type&1=q&2=helloworld&sessionId=3ef951a2ba6a481888cd3f8012b65194
метод клик
cmd=click&1=btnG&sessionId=3ef951a2ba6a481888cd3f8012b65194
Подробнее
Спасибо за предложение,
Прочтите пожалуйста следующий случай.
У меня упал тест на ФФ.
Я запустил его в идее с бряком на месте преткновения. Для запуска использую профиль ФФ с аддонами фаербага, и Selenium IDE.
Тест дошел до точки преткновения (например он упал из-за того, что не увидел ожидаемого элемента, появление которого является результатом выполнения определенного действия).
Я увидел глазами, что элемент не появился. Видимо или баг или инструкция, вызывающая его появление, не отработала.
Разбираюсь в причине и выясняю, что не хватало, например, сделать focusWindow перед вводом текста в поле. Накидал в Selenium IDE соответствующие команды и они отработали верно (напомню, что это Selenium IDE запущенного тестом профиля ФФ, следовательно страница находиться в состоянии непосредственно перед падением и мне не нужно ждать, чтобы проверить эти команды).
Копировал эти команды в код и т.д. - дальше не интересно.
Теперь у меня упал такой тест только на ИЕ - элемент не появился, бага нет - на лицо, неправильно исполненная инструкция, а в ФФ все работает супер.
Что я делаю в таком случае?- тоже самое, что и в первом, только вместо Selenium IDE вношу новый вариант команд в код теста и запускаю его в идее, если этот вариант не отработал, то меняю код и запускаю снова и т.д. Порой это длится мучительно долго.
Думаю, что Вы понимаете, что данный совет подходит не в этом случае. Мне нужен исходный JS код команд селениума, чтобы ввести его через консоль девелопер тулзы.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных