使用Watir自动进行身份验证

时间:2011-11-25 11:58:08

标签: ruby automation watir

我搜索并搜索了这个,但我似乎无法让这种自动化工作。使用OpenQA网站上的所有basic authentication code后,我仍然无法使用身份验证框。

我正在使用IE8,其网站启用了HTTPS。

通过使用Watir,我可以将IE打开到正确的页面,但我尝试的任何内容都不允许我在登录表单中输入任何内容。

以下代码我将其简化为:

require 'watir'

url = 'https://thewebsite.com' 
@username = 'myusername'
@password = 'mypassword' 

browser = Watir::Browser.new
browser.goto url
sleep 5 
Watir.autoit.WinWait('Blank Page')
Watir.autoit.Send(@username)
Watir.autoit.Send('{TAB}')
Watir.autoit.Send(@password)
Watir.autoit.Send('{ENTER}')

有没有人有任何建议或链接?我在OpenQA网站上发现的很多信息似乎已经过时了。

由于

3 个答案:

答案 0 :(得分:1)

您是否尝试RAutomation而不是自动?

答案 1 :(得分:0)

您是否尝试过将url与用户一起使用并传入?如url ='https:// username:password@thewebsite.com',您可以尝试在浏览器中手动访问网址,如果手动工作,它也可以在您的脚本中使用。

答案 2 :(得分:0)

我来到这里遇到同样的问题,虽然看起来答案因Watir和watir-webdriver的最新版本而有所不同。我会用以下方式展示对我有用的东西:

watir (4.0.2 x86-mingw32)
watir-classic (3.6.0)
watir-webdriver (0.6.2)

Watir没有内置autoit,它看起来像我发现的其他建议(require 'watir/ie')也不再起作用。本着求解原始技术的精神:

确保安装后AutoIT已在Windows中注册。 转到AutotIT dll(与上面提到的rautomation gem一起安装,认为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