使用Watir自动化身份验证



我已经搜索和搜索了这个,但我似乎不能得到这个自动化工作。在OpenQA站点上使用了所有基本的身份验证代码后,我仍然无法使身份验证框工作。

我使用的是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网站上找到的很多信息似乎都过时了。

谢谢

您是否尝试了RAutomation而不是autoit?

您是否尝试使用url与用户和传递它?如url = 'https://username:password@thewebsite.com',您可以尝试在浏览器中手动访问url,如果它手动工作,它应该在您的脚本中也工作。

我来到这里有同样的问题,虽然它看起来像答案是不同的,由于最新版本的Watir和Watir -webdriver。我将使用

来展示我的工作方式:
watir (4.0.2 x86-mingw32)
watir-classic (3.6.0)
watir-webdriver (0.6.2)

Watir不再内置自动功能,看起来我发现的其他建议(require 'watir/ie')也不再工作了。本着用原始技术解决这个问题的精神:

确保安装后AutoIT已在windows上注册。转到AutotIT dll(与上面提到的rautomation gem一起安装,认为是Watir安装了这个)

cd C:Ruby193librubygems1.9.1gemsrautomation-0.8.0extAutoItX
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

最新更新