【发布时间】:2019-08-02 00:42:38
【问题描述】:
我正在使用 selenium 对正在开发的 UI 进行自动化测试,但由于身份验证,我一直无法访问该站点。我看到您可以验证在 URL 中嵌入凭据,例如“http://admin:admin@blah.com”,但我尝试使用 Selenium 驱动程序作为 driver.get("http://admin:admin@blah.com") 但它不起作用并且弹出窗口仍在出现。我还尝试使用 Alert 作为 driver.switchTo().alert() 来抓取该弹出窗口,但它说没有警报。我什至包括了一个网络等待警报,在浏览器中我可以清楚地看到弹出窗口在那里但无济于事。我什至尝试使用 Java Robot 来编写凭据,但没有成功,因为我们在无头环境中运行它并且 Robot 抛出异常。
我看到您可以使用 AutoIT 或 Sikuli 等第三方软件,但我只是想知道是否有特定方法可以使用 selenium 驱动程序进行此类身份验证?
提前感谢您的帮助!
编辑 1:
好的,多亏了Taylor 的建议,我设法通过添加代码来处理警报,让它在 Firefox 浏览器上运行:
Alert alert=driver.switchTo().alert();
alert.sendKeys(user+Keys.TAB+pass+Keys.TAB);
alert.accept();
driver.switchTo().defaultContent();
使用该代码,我设法发送用户名和密码进行身份验证,但对于 chrome,它不起作用。我尝试在几个网站上进行研究,但对每个人都有效的唯一答案是将凭据嵌入到 URL 中,如上所述,这对我不起作用。一个类似的链接是Selenium can't accept alert by google chrome [java],但我不想忽略警报,因为我需要在那里输入凭据。任何其他帮助将不胜感激!
【问题讨论】:
-
应用程序期望什么样的身份验证?
-
应用需要基本的身份验证用户名和密码
-
http basic for selenium,试试:sqa.stackexchange.com/questions/12892/…
标签: java selenium authentication selenium-webdriver