2016-03-16 1 views
0

Я использую Selenium в C#, и у меня есть небольшая проблема с моим последним тестом, который я написал.Не удается поймать Selenium WebDriverException on navigate url

Я создаю новый FirefoxDriver, который перемещается к моему URL-адресу, который мгновенно создает всплывающее окно для проверки подлинности, прежде чем он перейдет дальше. Проблема здесь в том, что driver.navigate(). Gotourl ("") ожидает загрузки URL-адреса, чего нет, а также не должен. Когда я окружать это заявление с попытаться поймать блок поймать WebDriverException он просто игнорирует его и заканчивается мой тест с:


Test Name: SetUserPw 
Test FullName: XUnit_DataManager_Tests.DataManagerGui.PasswordTest.SetUserPw 
Test Source: C:\Programme\IMaT\TestPlugins\Plugins for XUnit\XUnit_DataManager_Tests\DataManagerGui\PasswordTest.cs : line 393 
Test Outcome: Failed 
Test Duration: 0:00:00,001 

Result StackTrace: 
bei OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 
    bei OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) 
    bei OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor.Execute(Command commandToExecute) 
    bei OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) 
    bei OpenQA.Selenium.Remote.RemoteTargetLocator.Alert() 
    bei WebsiteAutomation.Helpers.Helper.c.b__4_0(IWebDriver drv) 
    bei OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition) 
    bei WebsiteAutomation.Helpers.Helper.WaitForAlert(UInt32 timeout) 
    bei WebsiteAutomation.Helpers.Helper.WaitForBasicAuth(String user, String password, Boolean accept, UInt32 timeout) 
    bei XUnit_DataManager_Tests.DataManagerGui.PasswordTest.OpenPasswordSite(String password) in C:\Programme\IMaT\TestPlugins\Plugins for XUnit\XUnit_DataManager_Tests\DataManagerGui\PasswordTest.cs:Zeile 430. 
    bei XUnit_DataManager_Tests.DataManagerGui.PasswordTest..ctor(InverterFixture fixtureData) in C:\Programme\IMaT\TestPlugins\Plugins for XUnit\XUnit_DataManager_Tests\DataManagerGui\PasswordTest.cs:Zeile 36. 
----- Inner Stack Trace ----- 
    bei System.Net.HttpWebRequest.GetResponse() 
    bei OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 
Result Message: 
OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:7055/hub/session/4b47ded2-6ba6-4052-8785-e8ba346092da/alert_text timed out after 60 seconds. 
---- System.Net.WebException : Die Anfrage wurde abgebrochen: Timeout für Vorgang überschritten. 

Есть ли способ, чтобы перейти к URL, но реагировать на всплывающие окна аутентификации?

ответ

1

Чтобы обработать сигнал, когда страница загружается:

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)); 
+0

Thx, работал как шарм –

Смежные вопросы