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

Фотография

Отладка тестов на IE с помощью частицы Selenium IDE


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 DmR

DmR

    Новый участник

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Россоховатский Дмитрий

Отправлено 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 минут). Меня не устраивает ждать так долго, чтобы проверить вариант исполнения каждой комбинации инструкций. Суть этой темы в том, чтобы используя консоль, в точности эмитировать команды селениума на ИЕ.

Заранее огромное спасибо всем откликнувшимся.
  • 0

#2 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 28 декабря 2011 - 06:24

Эм... Осмелюсь поинтересоваться: "А зачем?". Не проще ли из IDE экспортировать сценарий и юзать его в RC/WebDriver? Да, это требует минимальных знаний какого-либо языка (то-же питон или ява), но и результат существенно лучше (ибо универсален для IE, Firefox,Chrome, Opera, Safari). А чесать левой ногой за правым ухом (переводить тесты ВРУЧНУЮ на JS и добиваться их работоспособности в IE)... Зачем?
Либо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).
  • 0

#3 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 28 декабря 2011 - 07:03

Либо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).

Таких пока нет, но обещают сделать

Внимание вопрос - подскажите где я могу узнать какой JavaScript код соответствует какой команде селениума?

Внимание еще вопрос - какие у меня могут возникнуть проблемы при попытки использования JavaScript-команд селениума с помощью консоли 'F12 developer tools'?

Лучше научитесь пользоваться developer tools для нахождения локаторов и будет вам счастье. В большнинстве случаев это вообще не нужно. Так как общая структура документа в основном во всех браузерах одинакова отображается
И если всё же вы хотите отлаживать тесты в IE юзайте Selenium RC и какую-нибудь IDE для отладки тестов.
  • 0

#4 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 28 декабря 2011 - 07:20

Либо поискать инструменты аналогичные Selenium IDE для IE. Название точное не вспомню, но видел такое (идет как набор плагинов к разным браузерам с единым синтаксисом команд).

Таких пока нет, но обещают сделать


Есть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)
  • 0

#5 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 28 декабря 2011 - 07:34

Есть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)

Я не так понял) впринципе если подумать, то его можно использовать для поиска локаторов и записи тестов в IE) просто потом придётся переделать тесты под методы selenium
  • 0

#6 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 28 декабря 2011 - 07:43

Есть. Вспомнил название windmill. Оно идет как модуль для питона и позволяет запускать свою IDE в IE. Правда я его глубоко не изучал (просто для общего развития ибо сам использую RC)

Я не так понял) впринципе если подумать, то его можно использовать для поиска локаторов и записи тестов в IE) просто потом придётся переделать тесты под методы selenium


Это конечно да... Но зачем? Оно поддерживает IE. Firefox, Chrome, Safari. Не проще ли использовать этот модуль ВМЕСТО селениума (если уж нужна удобная IDE).
  • 0

#7 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 28 декабря 2011 - 07:52

Это конечно да... Но зачем? Оно поддерживает IE. Firefox, Chrome, Safari. Не проще ли использовать этот модуль ВМЕСТО селениума (если уж нужна удобная IDE).

Я не слишком хорошо знаком с этим инструментом) Но багов у него хватает)
Если юзается только Selenium IDE, то да, вполне хорошая альтернатива.
  • 0

#8 DmR

DmR

    Новый участник

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Россоховатский Дмитрий

Отправлено 28 декабря 2011 - 09:34

Лучше научитесь пользоваться developer tools для нахождения локаторов и будет вам счастье. В большнинстве случаев это вообще не нужно. Так как общая структура документа в основном во всех браузерах одинакова отображается

Вадим, спасибо большое, за ответ и за совет. Учиться пользоваться developer tools - это на самом деле правильно направление, и, таки да, это поможет мне найти локаторы и позволит сделать еще много замечательных вещей.
И действительно это не очень-то и нужно, учитывая, что в большинстве случаев(практически всегда) локаторы, отработавшие на ФФ, отработают и на ИЕ...
И, если бы команды селениум, отработавшие на ФФ, абсолютно всегда отрабатывали бы на ИЕ, я бы врядли запостил бы эту тему. К сожалению, когда в вашем проекте 1500+ тестов и ИЕ в скоупе, то часто возникает ситуация (особенно с JS), когда команда(или инструкция, но не локатор) не делает того что, вы от нее ожидаете на ИЕ. Но опыт подсказывает вам, что возможно комбинация других команд вам поможет. Вы наверное не раз встречали, да и скорее всего сами делали такое - if([brouser = ie]){[сделай это так]}else{[сделай это иначе]}.
Поэтому, прошу обратить ваше внимание на то, что проблема, обсуждаемая сейчас, не с локаторами, а с разным исполнением команд у ИЕ и остальных.

И если всё же вы хотите отлаживать тесты в IE юзайте Selenium RC и какую-нибудь IDE для отладки тестов.


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

В данной теме, я не говорю о выходе из без выходной ситуации, я говорю о том, что выход из подобной ситуации может отнять меньше времени.
  • 0

#9 DmR

DmR

    Новый участник

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Россоховатский Дмитрий

Отправлено 28 декабря 2011 - 09:36

И, ребят, разве не интереснее найти способ решить проблему, чем объяснять почему эта проблема не проблема, давайте узнаем как и где достать JS код для команд селениума и как его запустить через консоль.
  • 0

#10 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 28 декабря 2011 - 09:49

И, ребят, разве не интереснее найти способ решить проблему, чем объяснять почему эта проблема не проблема, давайте узнаем как и где достать JS код для команд селениума и как его запустить через консоль.

Ну у меня нет никаких проблем чтобы юзать Selenium WebDriver+Java+JUnit+Eclipse) поэтому подобных проблем у меня не возникает)

ну если всётаки хочется идти этим путём, то тогда как вариант можно использовать 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, намного больше сэкономит времени для отладки

1500+ тестов

И вы их все автоматизировали???используя только Selenium IDE?
  • 0

#11 alena b

alena b

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Alena

Отправлено 28 декабря 2011 - 12:11

И, ребят, разве не интереснее найти способ решить проблему, чем объяснять почему эта проблема не проблема, давайте узнаем как и где достать JS код для команд селениума и как его запустить через консоль.

Ну у меня нет никаких проблем чтобы юзать Selenium WebDriver+Java+JUnit+Eclipse) поэтому подобных проблем у меня не возникает)

ну если всётаки хочется идти этим путём, то тогда как вариант можно использовать 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, намного больше сэкономит времени для отладки

1500+ тестов

И вы их все автоматизировали???используя только Selenium IDE?

Мне кажется , что человек немного не про то спрашивал=) cmd=click&1=btnG&sessionId=3ef951a2ba6a481888cd3f8012b65194 это же не JS команда. Он хотел явно что-то типа javascript{alert('hoho')} - и это "забивать" в селениум ИДЕ, как простейший вариант.
  • 0

#12 DmR

DmR

    Новый участник

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Россоховатский Дмитрий

Отправлено 28 декабря 2011 - 12:24

Я извиняюсь за то, что был не исчерпывающи точен в описании своей проблемы. С вашего позволения, я добавлю несколько уточнений.

Я не запускаю тесты на Selenium IDE, для создания и прогона тестов использую следующее: Selenium WebDriver&RC, InteliJ IDEA + TestNG. Для прогона Тимсити, для сборки страниц и ядра - Maven.

Проблема у меня с отладкой тестов, упавших на IE, по причине того, что выполнение инструкций селениума на IE отличается.

Я вижу, что по этой теме отвечают достаточно творческие люди, и я попробую задать для вас творческий вопрос - как мне "на лету" (как я это могу сделать в ФФ с помощью Selenium IDE) с эмитировать команды селениума, чтобы понять, что они отработают правильно, когда запустяться билдом континиус интегрейшена?

Мне очень интересно ваше мнение, т.к. вы, очевидно, намного опытнее меня.

Заранее спасибо.
  • 0

#13 DmR

DmR

    Новый участник

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Россоховатский Дмитрий

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


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных