Я пришел сюда с той же проблемой, хотя похоже, что ответ отличается из-за последней версии Watir и watir-webdriver. Я покажу, что работает для меня, используя:
watir (4.0.2 x86-mingw32)
watir-classic (3.6.0)
watir-webdriver (0.6.2)
У Ватира больше нет встроенного autoit, и похоже, что другое найденное мной предложение (require 'watir/ie'
) больше не работает. В духе решения этой проблемы с оригинальной технологией:
Убедитесь, что после установки AutoIT была зарегистрирована в Windows.
Перейдите в dll AutotIT (установленный с гемом rautomation, упомянутым выше, думаю, Watir установил это)
cd C:\Ruby193\lib\ruby\gems\1.9.1\gems\rautomation-0.8.0\ext\AutoItX
regsvr32 AutoItX3.dll
Тогда код ниже должен работать
require 'watir'
require 'win32ole'
$b = Watir::Browser.new :ie
begin
$b.goto( 'http://10.254.157.34:8383/mywebsite/stuff.html');
rescue Exception => e
puts "Trapped Error, expecting modal dialog exception"
puts e.backtrace
puts "Continuing"
end
login_title = "Windows Security" #For Windows 7, dialog title for anything else
username = "myuser"
password = "mypassword"
sleep 1 #Just in case
au3 = WIN32OLE.new("AutoItX3.Control")
win_exists = au3.WinWait(login_title, "", 5)
if (win_exists > 0)
au3.WinActivate(login_title)
au3.Send('!u')
au3.Send(username)
au3.Send('{TAB}')
au3.Send(password)
au3.Send('{ENTER}')
end