Работать с Alert довольно просто.
Сначала в него нужно войти, потом достать текст и в конце — закрыть.
Воспользуемся простым рецептом.
def get_alert_text options
wait = options[:wait] || Selenium::WebDriver::Wait.new
driver = options[:driver]
wait.until do
driver.switch_to.alert
end
alert = driver.switch_to.alert
text = alert.text
alert.accept
text
end
Тут же проверим его работу.
require 'selenium-webdriver'
def get_alert_text options
wait = options[:wait] || Selenium::WebDriver::Wait.new
driver = options[:driver]
wait.until do
driver.switch_to.alert
end
alert = driver.switch_to.alert
text = alert.text
alert.accept
text
end
driver = Selenium::WebDriver.for :chrome
driver.get 'data:text/html,<script>alert(\'foo\')</script>'
puts get_alert_text driver: driver