Работа с Alert tag в Selenium WebDriver на Ruby

Работать с 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
3 лайка