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

Фотография

Selenium -JavaScript Alert


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

#1 sp-qa

sp-qa

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

  • Members
  • Pip
  • 1 сообщений

Отправлено 18 марта 2011 - 14:06

Столкнулся со следующей проблемой. Есть веб-страничка с разными контролами. По нажатию на кнопку "Save" происходит сохранение введенных значений в текстовых полях и появляется JavaScript Alert - pop-up window с текстом 'Agencies were updated' и кнопкой "Ок" (see attached document). Загвоздка в том, что Selenium IDE не видит этого Алерта. То есть когда я воспроизвожу тест, происходит нажатие на кнопку Save, появляется этот JavaScript и тест висит, а дальше не продолжается пока не нажму вручную на кнопку "Ok" для этого Алерта. Как возможно закрыть этот JavaScript Alert?

chooseOkOnNextConfirmation - не помогает, т.к. это не confirmation message
Этот алерт вызывается следующей строкой - script = "alert('Agencies were updated');";

Заранее спасибо за любые советы
  • 0

#2 jonnykh

jonnykh

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Иван Неверов
  • Город:Харьков

Отправлено 18 марта 2011 - 18:46

Столкнулся со следующей проблемой. Есть веб-страничка с разными контролами. По нажатию на кнопку "Save" происходит сохранение введенных значений в текстовых полях и появляется JavaScript Alert - pop-up window с текстом 'Agencies were updated' и кнопкой "Ок" (see attached document). Загвоздка в том, что Selenium IDE не видит этого Алерта. То есть когда я воспроизвожу тест, происходит нажатие на кнопку Save, появляется этот JavaScript и тест висит, а дальше не продолжается пока не нажму вручную на кнопку "Ok" для этого Алерта. Как возможно закрыть этот JavaScript Alert?

chooseOkOnNextConfirmation - не помогает, т.к. это не confirmation message
Этот алерт вызывается следующей строкой - script = "alert('Agencies were updated');";

Заранее спасибо за любые советы


getAlert - эмулирует нажатие на кнопку ОК (окно alert'а не появляеться)
verifyAlert(pattern) - проверяет что текст соответствует паттерну и нажимает ОК
assertAlert - проверяет что текст соответствует паттерну (если нет тест фейлиться) и нажимает ОК
....
http://release.selen.../reference.html - ссылка на команды селениум (поиск по alert поможет :smile: )
  • 0

#3 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 марта 2011 - 20:02

Selenium не видит alert'ы, которые вызываются до загрузки страницы, в таком случае можно воспользоваться нативными методами Selenium.
  • 0

#4 ochoba

ochoba

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Таки нет

Отправлено 10 июня 2011 - 09:06

А где можно поподробнее узнать о нативных методах и их использовании для решения подобной проблемы?
  • 0

#5 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 10 июня 2011 - 11:08

В документации на методы *native в интерфейсе Selenium.
  • 0

#6 EgorQA

EgorQA

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Егор Иванов

Отправлено 18 июля 2011 - 08:25

тоже столкнулся с такой проблемой, после прохождения по ссылке выскакивает JS окно закачки,предлгающее скачать файл не могу понять как его закрыть
  • 0

#7 Leoxa

Leoxa

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

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Алексей

Отправлено 18 июля 2011 - 10:14

тоже столкнулся с такой проблемой, после прохождения по ссылке выскакивает JS окно закачки,предлгающее скачать файл не могу понять как его закрыть


попробуйте использовать Java robot. вот тут есть пример.
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июля 2011 - 10:29

тоже столкнулся с такой проблемой, после прохождения по ссылке выскакивает JS окно закачки,предлгающее скачать файл не могу понять как его закрыть

Должен признаться, что ни разу не видел JS-окно, предлагающее сохранить файл.
Может быть имеется в виду нативное окно, диалог сохранения файла?
Да, Selenium не умеет с ними работать. И в ближайшее время не планируется.

Потому что Selenium предназначен для проверки пользовательского интерфейса веб-приложения в браузере.
Какое отношение загрузка файла имеет к пользовательскому интерфейсу веб-приложения? Никакого. Это штатная функция браузера.

А если действительно надо загрузить файл и потом его проанализировать -- Selenium может сообщить ссылку.
После чего надо взять какую-нибудь подходящую библиотеку (типа httpclient для Java или curl для php) и загрузить файл при помощи неё.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 EgorQA

EgorQA

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Егор Иванов

Отправлено 18 июля 2011 - 10:41

дело в том что файл загружать как раз и не надо, просто пока его не закроешь нельзя дальше работать со страницей а Selenium IDE это окно не видит, если в браузере отключить JavaScript то окно не загружается но и страница не загружается до конца
  • 0

#10 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июля 2011 - 10:58

Код страницы показать можете? Ещё лучше -- ссылку на страницу, где такое можно наблюдать в живой природе.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#11 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 июля 2011 - 13:11

Может быть имеется в виду нативное окно, диалог сохранения файла?
Да, Selenium не умеет с ними работать. И в ближайшее время не планируется.

А вот это неправда, Selenium прекрасно работает с такими диалогами, у нас есть для этого кроссбраузерный метод, без проблем работает через нативные функции Selenium.

По теме - вызовите keypressNative с кодом клавиши Escape и окошко закроется. Кстати, у вас не может быть JS-окна, либо на флеше, либо нативное браузерное.
  • 0

#12 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 июля 2011 - 13:14

Кстати, ещё как вариант можете настроить в браузере автоматическое сохранение файлов в определённую директорию, тогда это окошко вообще не будет появляться.
  • 0

#13 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июля 2011 - 13:21

А вот это неправда, Selenium прекрасно работает с такими диалогами, у нас есть для этого кроссбраузерный метод, без проблем работает через нативные функции Selenium.

Виталий, это не селениум прекрасно работает, а ваше расширение :)
Насколько метод кроссбраузерный? Какие браузеры поддерживаются? Какие операционки? Какие локализации?

Есть возможность поделиться с народом? Предлагаю сделать небольшую статейку, и опубликовать исходный код.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#14 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 июля 2011 - 14:04

Виталий, это не селениум прекрасно работает, а ваше расширение :)
Насколько метод кроссбраузерный? Какие браузеры поддерживаются? Какие операционки? Какие локализации?

Нет там особо расширений никаких :), просто надо знать правильную последовательность вызовов нативных методов для разных ОС/браузеров. У нас поддержаны FF, IE, Safari, Opera на Win+Lin, от локализации не зависит, сложного там ничего и нет вовсе, может и правда выложу тогда.

Кстати, насчёт загрузки файла с помощью сторонней библиотеки - это запросто может не прокатить. Надо будет скопировать все куки (особенно те, что httpOnly до которых можно достучаться нормально только в FF), а ещё часто сессия защищена по IP, т.е. надо как-то обратиться с того же IP где запущен браузер... в общем здесь не так всё просто.
  • 0

#15 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июля 2011 - 14:30

Виталий, там файл сохраняется или производится отмена сохранения? Отмена проще. А сохранение универсальным сделать не так просто.

FF -- при первой загрузке файла FF выделяет радиобатон "Open With", так что надо переключать, а при последующих загрузках уже не надо переключать.
IE9 -- вообще не знаю, как с ним быть, там не нативный диалог, а wrapped-панелька в нижней части окна. Вы умеете на неё правильно кликать?
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#16 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 июля 2011 - 17:44

Сорри, сейчас посмотрел - у нас отдельный такой метод на upload, а download сделан автосохранением через настройки браузера - пишет в расшаренную папку. Но вроде проблем с download тоже нет - в FF надо отправить Alt+s, в IE9 то же самое, с отменой там вообще просто, но конечно надо попробовать. Кликать обычно не приходится, надёжнее и проще сделать всё с клавиатуры.
  • 0

#17 EgorQA

EgorQA

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Егор Иванов

Отправлено 19 июля 2011 - 12:59

да. я ошибся - это действительно родное окно закачки браузера. Подскажите пожалуйста как его закрыть используя Selenium IDE.
  • 0

#18 mzzz

mzzz

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

  • Members
  • Pip
  • 28 сообщений
  • ФИО:Ольга
  • Город:Харьков

Отправлено 20 июля 2011 - 08:27

Д.день!
В приложении используются Google Maps API для вычисления координат. Google Maps API key указывается в настройках приложения. Если этот ключ не верный, появляется alert "This web site needs a different Google Maps key" (и пока его не закроешь, web-страница не загружается). При записи последовательности моих действий с помощью Selenium IDE в момент, когда я пытаюсь закрыть это сообщение или нажать OK, Selenium это действие игнорирует. AssertAlert/assertConfirmation/waitForPopUp не срабатывают.
Говорит ли это о том, что стандартными командами с помощью Selenium IDE я ничего не смогу сделать с этим сообщением?
  • 0

#19 Dalay_LAMO

Dalay_LAMO

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Дмитрий
  • Город:Санкт-Петербург


Отправлено 08 октября 2013 - 11:09

Д.день!
В приложении используются Google Maps API для вычисления координат. Google Maps API key указывается в настройках приложения. Если этот ключ не верный, появляется alert "This web site needs a different Google Maps key" (и пока его не закроешь, web-страница не загружается). При записи последовательности моих действий с помощью Selenium IDE в момент, когда я пытаюсь закрыть это сообщение или нажать OK, Selenium это действие игнорирует. AssertAlert/assertConfirmation/waitForPopUp не срабатывают.
Говорит ли это о том, что стандартными командами с помощью Selenium IDE я ничего не смогу сделать с этим сообщением?



Апну тему, начал изучать Selenium IDE и столкнулся с такими же окнами - assertAlert/assertConfirmation их не ловит, при записи действий тоже ничего не пишется. Есть ли решение проблемы через Selenium IDE? У меня это нативное окно, спрашивающее подтверждения ухода со страницы.
  • 0


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

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