无法在导航网址上捕获Selenium WebDriverException

时间:2016-03-16 17:10:37

标签: c# selenium

我在C#中使用Selenium,我写的最新测试有点问题。

我创建了一个新的FirefoxDriver,它导航到我的URL,在进一步导航之前立即创建一个用于身份验证的弹出窗口。这里的问题是,driver.navigate()。gotourl("")确实等待加载URL,它不会 - 并且也不应该这样做。当我用try catch块包围这个语句来捕获WebDriverException时,它只是忽略它并以下结束我的测试:

Timer

有没有办法导航到URL,但是对身份验证弹出窗口做出反应?

1 个答案:

答案 0 :(得分:2)

在页面加载时处理警报:

var driver = new FirefoxDriver();

// set the timeout to 0 and catch it
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(0));
try{
    driver.Navigate().GoToUrl("...");
}catch(WebDriverTimeoutException){
    driver.SwitchTo().Alert().Dismiss();
}
// restore the timeout
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(60));