下面是我的AutoIt脚本(UI3_Authentication.au3),用于处理Windows身份验证弹出窗口。
AutoItSetOption("WinTitleMatchMode","2") WinWait("Authentication Required") $title = WinGetTitle("Authentication Required") ; retrives whole window title $UN=WinGetText($title,"User Name:") ControlSend($title,"",$UN,"test");Sets Username $PWD=WinGetText($title,"Password:") Send("{TAB 1}") ControlSend($title,"",$PWD,"test1234");Sets PWD Send("{ENTER}")
以下是我对上述AutoIt exe文件的Selenium代码调用。
package tests; import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class Handling_Windows_Based_Prompt { public static void main(String[] args) throws IOException{ WebDriver c1 = new FirefoxDriver(); c1.get(“http://www.test.com”); Runtime.getRuntime().exec("C:\\POM_Newdemo\\EF_Automation_Demo\\UI3_Authentication.exe"); } }
当我运行上述Selenium文件时,它将打开页面并弹出身份验证。但这不是在插入用户名和密码。它等待用户输入。
我解决了 其实这是我的坏事。以前,我的代码是这样的:
c1.get(“http://www.test.com”); Runtime.getRuntime().exec("C:\\POM_Newdemo\\EF_Automation_Demo\\UI3_Authentication.exe");
我在get()之前添加了autoit代码,如下所示:
Runtime.getRuntime().exec("C:\\POM_Newdemo\\EF_Automation_Demo\\UI3_Authentication.exe"); c1.get(“http://www.test.com”);