2016-05-19 22 views
2

私はSelenium C#WebDriverで次のコードスニペットを試しました。 (バージョン2.50以上)。私は複数の機能(By.Xpath、By.ClassName、By.CssSelectorなど)要素が見つからない場合、なぜSeleniumはタイムアウト例外を出しますか?

var webDriver = new FirefoxDriver(); 
webDriver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 0, 60)); 
webDriver.Navigate().GoToUrl("http://google.com"); 
var resultElement = webDriver.FindElement(By.ClassName("NonExistingClass")); 

はなぜ、これは単なるnullかさえてNoSuchElementExceptionや空のコレクションを返さないでそれをテストした?私はそれが必要だと思いますタイムアウト例外を返しません。

例外:

「型 『OpenQA.Selenium.WebDriverException』のが で発生した例外はなく、ユーザーコードで処理されなかったWebDriver.dll

追加情報:HTTPリクエストのリモートへWebDriver URL用サーバー http://localhost:7055/hub/session/19e937df-9d51-4624-a700-33f0ec6be98c/element タイムアウト後60秒。

+3

あなたは一定の時間を待っています。 SOドライバはその時間待機し、ドライバがページ上でその要素を見つけることができない場合、タイムアウト例外が発生します。 –

+0

指定した待機時間を削除しました。すぐにNoSuchElementExceptionがスローされます。これは私が欲しいものです。ありがとう! :) – User

+0

うん。その待つ世話をする必要があります。 :-) –

答えて

4

あなたは一定の時間を待っています。ドライバはその時間を待って、ドライバがページ上でその要素を見つけることができない場合、タイムアウト例外をスローします。

この問題を解決するには、指定された待機時間をだけ削除してください。

ユーザー:Kishan Patelがこの問題の解決策としてコメントを投稿したにもかかわらず、この質問に回答しなかったため、この回答を投稿しています。

+0

私はあなたの答えを受け入れるつもりだが、実際のMVPは@キサン・パテル – User

0
IWebDriver driver = new FirefoxDriver(); 
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 0, 60)); 
driver.Navigate().GoToUrl("http://google.com"); 
var resultElement = driver.FindElement(By.ClassName("NonExistingClass")); 
関連する問題