嘿stackoverflow社区,
我有问题。我必须使用Selenium测试网站,但在加载网站之前会出现一个警告框。我的代码停在我的webdriver获取url的地方
public static void GoTo(string url){
webDriver.Url = baseUrl + url;
}
代码在webDriver.Url = baseUrl + url;
中停止,正在等待警报框中的输入。我无法使用SendKeys()
函数,因为代码停在那里并且正在等待。
如何解决此问题?
问候 尼古拉斯
答案 0 :(得分:0)
我假设JS生成了警报。 在Selenium中,您可以使用Actions类处理JS生成的警报。
您需要做的是,您必须将webDriver的焦点切换到生成的警报。
Alert alert = driver.switchTo().alert();
alert.dismiss(); // clicking on cancel.
alert.accept(); // click on yes.
alert.getText(); // Text to the prompt.
alert.sendKeys(charSequence args0); //sending something to that prompt.
如果您在处理警报后在同一页面上,则不需要切换到defaultContent,即使您这样做也没有问题。因为你必须使用:
driver.switchTo().defaultContent();
如果您对Actions类有任何疑虑,请告诉我。
如果它是基于Window的弹出窗口,则需要使用第三方工具,如AutoIT。 Vel Guru为您提供了解决方案。
答案 1 :(得分:0)
它的Windows身份验证弹出窗口您可以在URL中提供凭据,这意味着我们将在URL中添加用户名和密码,这样在运行脚本时它将绕过相同的路径。
实施例
http://username:password@url
或
使用AutoIT 请参阅链接了解更多详情 http://learn-automation.com/handle-windows-authentication-using-selenium-webdriver/