Спасибо за ваш вклад, Кевин,
Я на самом деле придумал этот ответ [который я подправил из метода Ватира Вики 1]. Кредиты Джорджу на следующий пост на Генерале Ватира. Я написал обработчик всплывающих окон так:
require 'win32ole'
title = "Choose File to Upload"
begin
popupOccurred = false
autoIt = WIN32OLE.new('AutoItX3.Control')
timeout = 15
autoIt.WinWait(title, '', timeout)
autoIt.ControlClick(title, "", "&Open")
sleep 1
autoIt.WinWait(title, '', timeout)
isClicked = autoIt.ControlClick(title, "", "OK")
sleep 1
autoIt.ControlClick(title, "", "Cancel") if (isClicked == 1)
autoIt.ole_free
rescue
puts "Error closing popup, please close Manually"
end
и в своем фрагменте кода я сделал следующее:
require 'watir'
b = Watir::Browser.start("tinypic.com")
#-- Launches the popup closer in a different process. other methods like
#-- Process.create or system(start rubyw C:\\popup_handler2.rb) or having the
#-- popup handler in a Thread did not work for me.
system("start ruby C:\\popup_handler2.rb")
b.file_field(:id, "the_file").set("C:\\image.png")
Я определенно буду признателен за отзывы от гуру / разработчиков / разработчиков Watir.
Спасибо
Chaitanya