require 'rubygems' require 'selenium-webdriver' require 'pp' dir = Dir.mktmpdir("modal-dialog") htmls = DATA.read.scan(/--- (.+?) ---\n(.+?)(?=---|\z)/m) htmls.each do |name, content| File.open(File.join(dir, name), "w") { |io| io << content} end wait = Selenium::WebDriver::Wait.new browser = Selenium::WebDriver.for :ie browser.navigate.to "file://#{dir}/modal.html" original_handles = browser.window_handles browser.find_element(:id, 'launch_modal_button').click handles = nil wait.until { handles = browser.window_handles handles.size == 2 } modal = (handles - original_handles).first pp :handles => handles, :original_handles => original_handles, :modal => modal browser.switch_to.window(modal) browser.find_element(:id, 'close_window').click __END__ --- modal.html ---