首页 > 解决方案 > 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 的官方文档?

标签: powershellselenium-webdriverselenium-chromedriver

解决方案


许多网站在接受凭据时会重定向到身份验证站点。这使得 $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://","");`

希望有效,或者如果有任何问题,请告诉我。


推荐阅读