Окно автоматического тестирования Ruby Selenium

Я запускаю автоматический тест на Ruby / Cucumber с помощью Selenium Webdriver в Chrome и пытаюсь удалить объект, но каждый раз, когда я это делаю, всплывает окно с предупреждением и просит меня подтвердить. в окне есть кнопки «ок» и «отменить». Как я могу нажать "ОК" автоматически?

Обновление из комментариев

Трассировка стека ошибок:

unexpected alert open: {Alert text : Möchten Sie den Benutzer [email protected] wirklich löschen?} (Session info: chrome=68.0.3440.106) 
 (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1 x86_64) 
 (Selenium::WebDriver::Error::UnhandledAlertError)

Обновите драйвер Chrome и селен, как говорит @DebanjanB, а затем попробуйте выполнить код b.alert.ok, он сработает. gem install watir также установит selenium-webdriver, но после установки просто проверьте с помощью gem list selenium-webdriver. Если это не последняя версия, попробуйте также установить gem install selenium-webdriver.

Rajagopalan 10.08.2018 11:22

Ссылка на документацию по watir: rubydoc.info/gems/watir/Watir/Alert

orde 10.08.2018 20:56
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
1
2
1 197
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это код для нажатия кнопки ОК в предупреждении.

driver.switch_to.alert.accept

Этот код предназначен для отклонения предупреждения

driver.switch_to.alert.dismiss

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

В WATIR вы можете принять предупреждение с помощью следующего кода

b.alert.ok

Чтобы закрыть предупреждение

b.alert.close

Я пробовал этот код, но он работает, работает, и я уже использую watir, мне нужно изменить некоторые конфигурации или требования? К сожалению, я новичок в тестировании автоматизации. Я просто получаю: неожиданное предупреждение открыто: {Текст предупреждения: Möchten Sie den Benutzer [email protected] wirklich löschen?} (Информация о сеансе: chrome = 68.0.3440.106) (Информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb863) Windows NT 6.1.7601 SP1 x86_64) (Selenium :: WebDriver :: Error :: UnhandledAlertError)

Engin Topuzoglu 10.08.2018 10:25

@EnginTopuzoglu Хорошо, тогда есть большая вероятность, что это предупреждение не является JavaScript. Не могли бы вы, пожалуйста, обновить Html-код этого окна предупреждения? Вы используете WATIR? Большой! Добавьте, пожалуйста, тег WATIR!

Rajagopalan 10.08.2018 10:27

я не вижу html-код окна предупреждения в devtools

Engin Topuzoglu 10.08.2018 10:54

Хорошо, не могли бы вы выполнить код watir b.alert.ok, а также поставить режим сна 4 до того, как предупреждение будет поднимать и писать этот код, чтобы проверить, является ли это предупреждение javascript b.alert.exists?, если оно возвращает true, то у вас есть предупреждение Javascript или у вас может быть какой-то скрытый элемент который появляется как всплывающее окно, когда вы нажимаете кнопку, это часть html. Можете ли вы дать мне URL-адрес для проверки?

Rajagopalan 10.08.2018 11:03

Спасибо, пользовался @browser = Selenium::WebDriver.for :chrome, options: options @browser.switch_to.alert.accept

Engin Topuzoglu 10.08.2018 13:22

@Engin Topuzoglu Привет, используйте WATIR, вы используете селен, вы упустите все преимущества, которые дает вам WATIR. Объявите @browser=Watir::Browser.new.

Rajagopalan 10.08.2018 13:49

В соответствии с обновлением вашего комментария вы видите сообщение об ошибке ...

unexpected alert open: {Alert text : Möchten Sie den Benutzer [email protected] wirklich löschen?} (Session info: chrome=68.0.3440.106) (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1 x86_64) (Selenium::WebDriver::Error::UnhandledAlertError)

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

  • Вы используете chromedriver = 2.38
  • Примечания к выпуску chromedriver = 2.38 четко упоминают следующее:

Supports Chrome v65-67

  • Вы используете хром = 68,0
  • Примечания к выпуску ChromeDriver v2.41 четко упоминают следующее:

Supports Chrome v67-69

Таким образом, существует явное несоответствие между ChromeDriver v2.38 и Браузер Chrome версии 68.0.

Решение

  • Обновить Селен до текущего уровня Версия 3.14.0.
  • Обновите ChromeDriver до текущего уровня ChromeDriver v2.41.
  • Держите версию Хром между уровнями Хром v67-69. (согласно примечаниям к выпуску ChromeDriver v2.41)
  • Если ваша базовая версия Веб-клиент слишком старая, удалите ее через Revo Деинсталлятор и установите последнюю версию GA и выпущенную версию Веб-клиент.
  • Запустите свой @Test.

Другие вопросы по теме