Я не уверен в вашей проблеме с всплывающими окнами, но у меня есть код, чтобы справиться с тем, что я считаю очень неприятной собственной проблемой всплывающих окон. Поэтому я включил это для полноты. Здесь ваш т.е. браузерный объект эквивалентен моему экземпляру объекта @browser
require 'watir\winClicker'
require 'watir\contrib\enabled_popup'
def popup_clicker(text)
begin
Timeout::timeout 2 , PopupTimeout do
if @browser.enabled_popup
hwnd = @browser.enabled_popup(5)
w = WinClicker.new
w.makeWindowActive(hwnd)
w.clickWindowsButton_hwnd(hwnd,text)
end
end
rescue PopupTimeout
# Do this line if you can't find a popup
end
@browser.wait
end
Затем нажмите кнопку ОК, просто запустите
popup_clicker('OK')
Одна вещь, которую вы можете заметить, это то, что вам нужно вручную нажимать кнопку, которая запускает всплывающее окно с аппаратным щелчком. AutoIT может с этим справиться, или у меня есть ручной кликер элемента Watir, если вы этого хотите. Попробуйте это без первого. У меня также есть код для проверки содержимого всплывающего окна, если вы этого хотите (в основном, бросьте в него 'popup_text = w.getStaticText_hWnd (hwnd) .to_s').
Что касается 2), убедитесь, что объект ie по-прежнему установлен в браузере. Попробуйте прикрепить, как отметил Намрантха. Я не знал, т.е. Это должно сработать, заменив @browser по своему усмотрению, а XXX - это заголовок окна или эквивалент регулярного выражения:
@browser = Watir::IE.attach(:title, XXXX)
@browser.close
Кредит на оригинал кликера для всплывающих окон должен идти дальше всего в цепочке, которую я могу найти, прекрасный пользователь из группы Google Watir-General по имени Уэсли Чен:
http://groups.google.com/group/watir-general/browse_thread/thread/41c45aae9f87da9b