嘿stackoverflow社区
我有个问题。我必须使用Selenium测试一个网站,但在加载该网站之前,会出现一个警告框。我的代码在webdriver获取url的地方停止。
public static void GoTo(string url){
webDriver.Url = baseUrl + url;
}代码在webDriver.Url = baseUrl + url;中停止并等待alertbox中的输入。我不能使用SendKeys()函数,因为代码停在那里等待。
我如何解决这个问题?
尼古拉斯问候
发布于 2018-04-05 19:58:18
我假设警报是由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类有更多的担忧,请让我知道。
如果它是基于窗口的弹出窗口,你需要使用第三方工具,如AutoIT。Vel Guru已经为您提供了该解决方案。
发布于 2018-04-05 19:59:53
它的Windows身份验证弹出窗口让您可以在URL中提供凭据,这意味着我们将在URL中添加用户名和密码,以便在运行脚本时绕过相同的用户名和密码。
示例
http://username:password@url或
使用AutoIT请参阅链接了解更多详细信息http://learn-automation.com/handle-windows-authentication-using-selenium-webdriver/
https://stackoverflow.com/questions/49671484
复制相似问题