提问人:Ashok 提问时间:5/25/2017 更新时间:3/20/2023 访问量:7760
如何使用 Selenium C 在 chrome 中填充 Authentication Required 弹出窗口#
How to fill Authentication Required popup in chrome with Selenium C#
问:
我正在尝试使用 Selenium 打开一个 Intranet 网站,该网站重定向到另一个登录链接并在有效登录时返回原始 URL。例如,当我启动 webdriver 并导航到原始站点 URL 时,浏览器会重定向到并显示在下面弹出窗口以输入用户 ID 和密码。https://DemoOriginalWebsite.Com
https://Validateyourselfbeforeaccessing.com:9030
我尝试按如下方式传递凭据,但没有成功。
尝试 1 : http://username:[email protected]
尝试2:https://username:pswdValidateyourselfbeforeaccessing.com:9030
无法直接访问身份验证 URL。
我的实际代码:
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:[email protected]");
请提出任何建议。
答:
1赞
Alok
5/25/2017
#1
您将不得不使用 AutoIT。安装 AutoIT,在 AutoIT 中编写脚本并将其导出为 .exe 文件。这个 .exe 你将不得不调用你的硒
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赞
Ashok
5/25/2017
谢谢。让我试试。
0赞
Ashok
5/25/2017
酷兄弟。AutoIT 和你一样了不起。我已将网络驱动程序更改为Internet Explorer,因为它为我提供了正确的Windows弹出窗口。将添加我的工作代码以供读者参考。谢谢。
0赞
Alok
5/25/2017
很高兴我能帮上忙。谢谢
2赞
Ashok
5/25/2017
#2
这是我的办法。
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();
评论