powershell - Selenium WebDriver 使用 powershell 处理 Windows 服务器身份验证
问题描述
使用 powershell 和 chrome 的基于 Selenium Webdriver 的测试,Windows 服务器,正在返回一个身份验证弹出窗口。
这是我当前的脚本:
$CDriver = New-Object OpenQA.Selenium.Chrome.ChromeDriver
$CDriver.Navigate().GoToURL('http://mytestserver/login/')
$CDriver.Navigate().GoToURL('http://admin:adm!n@mytestserver/login/')
我了解,我将无法使用元素,因为这不是来自网站本身的消息。
但我想了解是否可以使用 Selenium Webdriver 中的警报机制,而不是将用户名和密码传递到实际的 url?
这是我到目前为止尝试过的,但没有成功:
$alert = $CDriver.SwitchTo().Alert()
$alert.SendKeys("admin");
$alert.SendKeys("adm!n");
$alert.SwitchTo().Alert().Accept();
另外,是否有 Selenium WebDriver 和 powershell 的官方文档?
解决方案
许多网站在接受凭据时会重定向到身份验证站点。这使得 $CDriver.Navigate().GoToURL('http://admin:adm!n@mytestserver/login/') 无用。一个对我有用的选项如下:[当然这是在java中,但我希望你能弄清楚]
`//url=您的应用程序的原始 url。
driver.get(url);
authURL = driver.getCurrentUrl();
driver.get("http://admin:adm!n@"+authURL.replaceFirst("https://","");`
希望有效,或者如果有任何问题,请告诉我。
推荐阅读
- javascript - 使用js动态设置href属性
- c# - 在场景之间访问 Firebase 用户/数据库?
- python - 我将如何在此代码中添加选项和附加功能
- javascript - How can I calculate the angle between two lines with the same starting point?
- c# - 如何从 bson 文档中的键获取值以放入 ListBox (C#)
- .net - 如何在不加载该程序集的情况下将 AssemblyName 解析为程序集文件路径?
- regex - 匹配所有正则表达式模式,直到达到分隔模式
- lua - Lua 错误尝试索引全局 nil 值
- ruby-on-rails - 错误:分支“升级”未完全合并
- image - 如何使用淡入淡出效果,如 CSS 过渡到 SVG 中的图像标签?