我在C#中使用Selenium,我写的最新测试有点问题。
我创建了一个新的FirefoxDriver,它导航到我的URL,在进一步导航之前立即创建一个用于身份验证的弹出窗口。这里的问题是,driver.navigate()。gotourl("")确实等待加载URL,它不会 - 并且也不应该这样做。当我用try catch块包围这个语句来捕获WebDriverException时,它只是忽略它并以下结束我的测试:
Timer
有没有办法导航到URL,但是对身份验证弹出窗口做出反应?
答案 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));