0
IWebDriver driver = new RemoteWebDriver(uri, dc);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);
** Search google and end up at a Google Search Results page
List<IWebElement> elements = new List<IWebElement>();
elements.AddRange(driver.FindElements(By.XPath("//*[@id=\"vn1s0p1c0\"]")));
これを実行すると、XPathがページに存在する場合に動作しますが、Xpathがページに存在しない場合は60秒間待機してからタイムアウトします。私はFindElementsの動作は、要素が見つからない場合は空のリストを返すことでしたが。私が間違っていることは考えられません。ImplicitWaitを使用するとFindElementsのタイムアウト動作が発生する
感謝を。私がやったことは、タイムアウトを0に設定してからFindElementsを60にリセットしてから、タイムアウトをコード内の他の場所で有効にしたかったからです。 –
@ MarkMasic:いくつかの場所で待機ロジックを使いたいなら、グローバルドライバのタイムアウト設定に影響を与えない 'WebDriverWait'を使うことができます。 –
暗黙的および明示的な待機の両方を使用していないことを確認してください。[http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits](wsd) 。警告:暗黙的および明示的な待機を混同しないでください。そうすると、予測できない待ち時間が発生する可能性があります。 – JeffC