AutoIt:Chrome上的浏览器身份验证问题

时间:2017-09-11 06:38:01

标签: google-chrome selenium-webdriver autoit

在我的测试环境中,身份验证是使用Windows弹出窗口完成的,而在生产中,它通常是完成的,即一切都在网页上。

我正在使用AutoIT,但没有脚本正常工作,请帮忙。

我尝试的解决方案很少,

WinWaitActive("Authentication Required","","10")
Send("username")
Send("{TAB}")
Send("password")
Send("{Enter}")

第二个解决方案:

WinWait("locator","","10") // where locator is class found by using Finder tool 
 If WinExists("locator","") Then // in AutoIT
 WinActivate("locator") 
 Send("username@domain.com{TAB}")
 WinActivate("locator")
 Send("password{ENTER}") 
 EndIf

我知道这看起来非常简单,但我还没有能够在Chrome上这样做,如果我稍微调整一下脚本它在IE上工作正常

2 个答案:

答案 0 :(得分:0)

用于处理浏览器身份验证的

用于处理浏览器身份验证,只需弹出;

var alert = driver.SwitchTo().Alert();
alert.SetAuthenticationCredentials("username", "password");
alert.Accept();

答案 1 :(得分:0)

对于自动化Google Chrome,您可以使用Chrome UDF。 安装有3个步骤:

  1. 将自动extension安装到Chrome
  2. 安装AutoIT Chrome Native Messaging Host
  3. Chrome UDF安装到AutoIT
  4. 如果您对扩展程序有任何疑问,请

    Here

    使用示例:

    #Include <Chrome.au3>
    
    $Username = "username"
    $Password = "password"
    
    _ChromeStartup("https://yoururl.com")       ; start web page in Chrome
    sleep(1000)
    _ChromeObjSetValueByName("FIELD_USER_ID", $Username)        ; set username field
    sleep(1000)
    _ChromeObjSetValueByName("FIELD_PASSWORD", $Password)       ; set password field
    
    _ChromeInputClickByName("login")  ; name of "Login" button
    

    您可以从网页源代码(Chrome中的F12)获取字段和按钮的ID。

    您也可以尝试使用http网址授权:

    _ChromeStartup("http://" & $username & ":" & $password & "@" & "engprod-charter.net/")