我正在尝试使用Selenium打开一个Intranet网站,该网站重定向到另一个链接进行登录,并在有效登录时返回原始URL。例如 - 当我启动webdriver并导航到原始站点URL https://DemoOriginalWebsite.Com
时,浏览器会被重定向到https://Validateyourselfbeforeaccessing.com:9030
并显示在弹出窗口下方以输入用户ID和密码。
我尝试按以下方式传递凭据,但无效。
尝试1: http://username:pswd@DemoOriginalWebsite.Com
尝试2: https://username:pswdValidateyourselfbeforeaccessing.com:9030
无法直接访问身份验证网址。
我的实际代码:
IWebDriver chromeDriver;
ChromeOptions options = new ChromeOptions();
options.AddArgument("disable-infobars");
options.AddUserProfilePreference("credentials_enable_service", false);
options.AddUserProfilePreference("profile.password_manager_enabled", false);
chromeDriver = new ChromeDriver(options);
chromeDriver.Manage().Window.Maximize(); chromeDriver.Navigate().GoToUrl(@"http://username:pswd@DemoOriginalWebsite.Com");
请提出任何建议。
答案 0 :(得分:1)
您必须使用AutoIT。安装AutoIT,在AutoIT中编写脚本并将其导出为.exe文件。这个.exe你必须在你的selenium中调用
WinWait("Untitled - Google Chrome", "" , 10)) //This will wait for 10 seconds for window with the specified title
WinActivate("Untitled - Google Chrome"); // This will send the focus of the cursor to the window with the specified title
Send("username");
//1st argument : moves the cursor's focus from Username textbox to Password text box.
//2nd argument : false, over here tell that it is not a text but raw key
Send("{TAB}", false);
Send("password");
Send("{Enter}", false);// this will mimic the action of pressing enter button.
答案 1 :(得分:1)
以下是我的想法。
1 - 将AutoIt NuGet包添加到项目中。
2 - 使用如下:
IWebDriver driverIE = new InternetExplorerDriver();
driverIE.Manage().Window.Maximize();
driverIE.Navigate().GoToUrl(@"https://DemoOriginalWebsite.Com");
AutoItX.ControlFocus("Windows Security", "", "Edit1");
AutoItX.ControlSetText("Windows Security", "", "Edit1","userid");
AutoItX.ControlFocus("Windows Security", "", "Edit2");
AutoItX.ControlSetText("Windows Security", "", "Edit2", "password");
AutoItX.ControlClick("Windows Security", "", "Button2");
//Do your work.
driverIE.Dispose();
我遵循的教程。 Tutorial 1和Tutorial 2