Странная обработка нажатия на ссылку
#1
Отправлено 07 декабря 2010 - 19:14
Хочется вот, что узнать - как?
Ситуация:
Имеется ссылка и имеется div-объект, который перекрывает эту самую ссылку
Проблема:
Когда работает Selenium, то нажатие по ссылке отрабатывается и скрипт идёт дальше, а вот когда руками (фактически то, что пользователь и выполняет, работая с сайтом), то перекрывающий ссылку div-объект - не даёт ничего сделать, что очевидно
Если коротко, Selenium выполняет нажатие, руками - не выполняется.
Вопрос:
Как быть и как отлавливать такие ситуации?
Спасибо за внимание, жду комментариев :)
#2
Отправлено 07 декабря 2010 - 20:14
В общем случае -- никак.Как быть и как отлавливать такие ситуации?
Именно поэтому ручное тестирование не нужно никогда прекращать, даже если вы всё-всё-всё автоматизировали.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#3
Отправлено 07 декабря 2010 - 20:39
В общем случае -- никак.
Как быть и как отлавливать такие ситуации?
Именно поэтому ручное тестирование не нужно никогда прекращать, даже если вы всё-всё-всё автоматизировали.
Стоп, стоп, стоп...Алексей, правильно ли я понял Вас
получается, Selenium - не работает как обычный пользователь, т.е. не кликает, не нажимает, не вводит, а работает на уровне взаимодействия с браузером ниже, чем это может выполнить рядовой пользователь?
#4
Отправлено 07 декабря 2010 - 21:01
По простому никак. Даже если селениум умеет подтаскивать мышу в область обекта и генерить клик, а не эмулировать событие onclick для ссылки, то тоже есть вероятность того, что не найдется баг. Болтон на своем тренинге именно такую ситуацию показывал. Даже человек может не найти, если кликает в нужном месте, а перекрытие частичное.Всем привет!
Хочется вот, что узнать - как?
Ситуация:
Имеется ссылка и имеется div-объект, который перекрывает эту самую ссылку
Проблема:
Когда работает Selenium, то нажатие по ссылке отрабатывается и скрипт идёт дальше, а вот когда руками (фактически то, что пользователь и выполняет, работая с сайтом), то перекрывающий ссылку div-объект - не даёт ничего сделать, что очевидно
Если коротко, Selenium выполняет нажатие, руками - не выполняется.
Вопрос:
Как быть и как отлавливать такие ситуации?
Спасибо за внимание, жду комментариев :)
По сложному, наверное можно попробовать, но не гарантированно. Например можно обратиться к BOX модели и по координатам смотреть кто-кого перекрывает и кто у кого парентом. Это гемор, но что-то тут можно поделать. Еще вариант - покопать в сторону event bubbling и capturing. Тут можно всем элементам нараздавать своих onclick-ов, а сэмулировать клик на нужном и посмотреть куда всплывет ивент. Хотя не берусь сказать, что это работает, если элементы разных слоев наложились.
Alexey
#5
Отправлено 07 декабря 2010 - 21:12
Да. Да! ДА!!!! И не только Selenium :)Стоп, стоп, стоп...Алексей, правильно ли я понял Вас
получается, Selenium - не работает как обычный пользователь, т.е. не кликает, не нажимает, не вводит, а работает на уровне взаимодействия с браузером ниже, чем это может выполнить рядовой пользователь?
Selenium, по сути -- это движок, написанный на JS, который умеет выполнять некоторый набор команд. Вы же, как пользователь, не работаете с браузером, выполняя JS-команды?
Selenium 2.0 в этом отношении чуть лучше, он более точно эмулирует действия пользователя.
Например, он не позволяет нажать на невидимую кнопку (и некоторые тестировщики, кстати, уже возмущаются по этому поводу :))
Но всё равно он не замечает, что объекты перекрываются, потому что тоже работает с объектами.
Хотите идеальной точности воспроизведения действий пользователя -- вычисляйте координаты объектов, и эмулируйте нажатия кнопки мыши в заданном месте экрана, на уровне оконной оболочки.
Может быть, кстати, есть фреймворки, которые именно так делают? Я не знаю.
Но ведь вы ещё и проверки скоро захотите сделать такие же -- как проверить, что этот див не наезжает на вон тот, как проверить, что текст на десяти языках вписывается в этот блок и не загибается, и т.д.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#6
Отправлено 07 декабря 2010 - 21:44
Выходит Selenium не эмулирует полноценно действие пользователя, что является в корне неверным и не правильным, т.е. тестируем а бы как и а бы что, но не так как надо, в таком случае, зачем он вообще нужен, не ясно.
НЕТ, господа, мне такого "добра" и даром не надо!
А главное, НИКТО НЕ ГОВОРИТ о том, что Selenium является банальным обманом неопытных тестировщиков.
#7
Отправлено 07 декабря 2010 - 21:50
Если бы только Selenium... Они все, все такие!!!Господа, спасибо за ответы!
Выходит Selenium не эмулирует полноценно действие пользователя, что является в корне неверным и не правильным, т.е. тестируем а бы как и а бы что, но не так как надо, в таком случае, зачем он вообще нужен, не ясно.
НЕТ, господа, мне такого "добра" и даром не надо!
А главное, НИКТО НЕ ГОВОРИТ о том, что Selenium является банальным обманом неопытных тестировщиков.
Автоматизация -- это заговор, целью которого является подрыв доверия к тестированию :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#8
Отправлено 07 декабря 2010 - 22:07
Если бы только Selenium... Они все, все такие!!!
Например, TestComplete - нет, так же как и HP WinRunner, HP QTP, IBM Rational Robot
Автоматизация -- это заговор, целью которого является подрыв доверия к тестированию :)
Автоматизация - помошник при регрессии и сложных операциях, Алексей, да вы и сами лучше меня это знаете :)
#9
Отправлено 08 декабря 2010 - 05:14
Если бы только Selenium... Они все, все такие!!!
Автоматизация -- это заговор, целью которого является подрыв доверия к тестированию :)
Алексей ! Можно с этого места поподробнее ?
PS
Я не представляю, чтобы я делал без benchmark при выборе железа, а ведь это и есть автоматизация тестирования микропрограммам, которыми напичкано железо !
PSPS
Предлагаю сделать опрос, нужна ли автоматизация тестирования ?
#10
Отправлено 08 декабря 2010 - 07:26
Увы, да.
Если бы только Selenium... Они все, все такие!!!
Например, TestComplete - нет, так же как и HP WinRunner, HP QTP, IBM Rational Robot
С помощью QTP можно нажать на невидимые ссылки, вводить значение в задисейбленные контролы и вообще взаимодействовать с интерфейсом так, как это не сможет сделать ни один нормальный пользователь.
То же самое верно в отношении WinRunner, Robot'a и скорее всего TestComplete (с ним знаком теоретически, но не думаю, что там принципы работы с объектами сильно отличаются)
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#11
Отправлено 08 декабря 2010 - 07:31
#12
Отправлено 08 декабря 2010 - 07:35
я думаю что selenium 3.0 будет выпускатся в виде робота в человеческий рост которого можно посадить вместо себя за компьютер, дать ему в руки мышь и клавиатуру, и пусть кликает.
продолжение можно посмотерть здесь
http://masu-inform.r...s/sravnenie.ppt
#13
Отправлено 08 декабря 2010 - 07:42
И называться он будет Selenium 3Dкакая смешная тема.
я думаю что selenium 3.0 будет выпускатся в виде робота в человеческий рост...
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#14
Отправлено 08 декабря 2010 - 07:42
Ну во многих тулах можно "честно" кликать по координатам и заниматься распознаванием картинок. Это будет вполне себе "честная" автоматизация. Вопрос поддержания, стабильности и написания таких автоматических тестов оставим в стороне.
Не удачный пример: в посте рассматривался вопрос о возможностях работы с двумя контролами, один из который полностью перекрывает другой. Поэтому использование картинок в данном случае невозможно.
#15
Отправлено 08 декабря 2010 - 07:45
Эээ... Почему же?Не удачный пример: в посте рассматривался вопрос о возможностях работы с двумя контролами, один из который полностью перекрывает другой. Поэтому использование картинок в данном случае невозможно.
#16
Отправлено 08 декабря 2010 - 07:46
Эээ... Почему же?
Не удачный пример: в посте рассматривался вопрос о возможностях работы с двумя контролами, один из который полностью перекрывает другой. Поэтому использование картинок в данном случае невозможно.
Я о контроле, который закрыт..
PS
Мы начали удаляться о темы поста...
#17
Отправлено 08 декабря 2010 - 07:48
Если мы можем получить его картинку, то тест "честно" свалится не найдя контрола. А пока текущие условия не говорят нам что контрол был закрыт всегда и что мы никакими "честными" способами не можем получить его картинку.Я о контроле, который закрыт..
#18
Отправлено 08 декабря 2010 - 08:17
Может сработать, если то что сверху не прозрачное.Если мы можем получить его картинку, то тест "честно" свалится не найдя контрола. А пока текущие условия не говорят нам что контрол был закрыт всегда и что мы никакими "честными" способами не можем получить его картинку.Я о контроле, который закрыт..
Alexey
#19
Отправлено 08 декабря 2010 - 08:22
Сейчас вот честно взял Silkuli - ок, он нашел картинку, но клик все равно не отработал. Почему? А потому что ушел он не объекту а в энную область экрана, где совсем не тот объект. Как-то так.Может сработать, если то что сверху не прозрачное.
#20
Отправлено 08 декабря 2010 - 09:29
Если бы только Selenium... Они все, все такие!!!
Автоматизация -- это заговор, целью которого является подрыв доверия к тестированию :)
Алексей, вот Вы съюморили, а люди восприняли всерьёз, теперь создадут секту Ручного тестирования и будут устраивать шествия с плакатами "Долой Selenium!", "Автотесты зло!", "Удали TC - повысь качество!" :)
1. Перед тем как запускать тесты, стоит делать скриншоты узловых страниц, таким образом вероятность того, что Selenium упустит баг, будет крайне мала.
2. Как уже сказали, можно кликать по координатам, соответственно усовершенствовать методы Selenium'а, думаю у многих в своих фреймворках не мало таких примеров.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных