Как мне договориться об окнах предупреждений в Watir?

Я пытаюсь создать сценарий автоматизации для веб-сайта, используя Ruby с Watir.

Я столкнулся с ситуацией, когда мне нужно выбрать «Да» или «Нет» в окне предупреждения. Проблема в том, что я не могу идентифицировать окно предупреждения как компонент страницы, чтобы получить его идентификатор и использовать его для выбора параметра.

Я нашел некоторую информацию о том, как создать окно оповещения, но мне нужно перемещаться по нему. Может кто-нибудь мне помочь?


person Manish    schedule 17.05.2011    source источник
comment
некоторые окна предупреждений должны обрабатываться на уровне ОС, поскольку они являются модальными и фактически не существуют на странице браузера. В этом случае полезно знать вашу ОС, поскольку для отправки событий нажатия клавиш на уровне ОС используются разные дубли.   -  person Chuck van der Linden    schedule 19.05.2011
comment
легче увидеть, какова ваша ситуация, если есть URL-адрес веб-сайта, на который вы переходите. Если это недоступно, вы можете указать источник страницы. это спасло бы всех от догадок.   -  person Dave McNulla    schedule 23.12.2011


Ответы (3)


Похоже, у вас есть поле confirm, если вы можете выбрать два варианта («ОК» или «Отмена»). Если вы хотите имитировать нажатие «ОК», вы должны поместить что-то подобное, прежде чем активировать подтверждение.

# return true for confirm to simulate clicking OK
b.execute_script("window.confirm = function() {return true}")

Если у вас есть только alert с одной кнопкой «ОК», сделайте это.

# don't return anything for alert
b.execute_script("window.alert = function() {}")

Дополнительные примеры см. на этой странице.

person Austin Taylor    schedule 17.05.2011

Подход, предложенный Остином Тейлором, может работать нормально, но я думаю, что для более общего решения вам нужно иметь дело с всплывающими окнами на уровне ОС, как предлагает Чак.

Если кто-то заходит на эту страницу в поисках такого рода ответов, здесь перечислены различные решения: http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups

person Josep Valls    schedule 22.12.2011

Вы можете использовать эти чистые вызовы watir:

  • browser.alert.ok
  • browser.alert.close

Дополнительную информацию см. в официальной документации по платформе.

person Jay Haase    schedule 27.04.2015