2017-07-06 9 views
0

私はいくつかのテストを行い、セレンを使ってそれらを実行しました。私は暗黙の待ちを何でどこで使うべきかを探すときに、複数のレビューを見てきました。テストを初期化するときにのみ使用するか、要素が見つかるまで暗黙のうちに待つ必要があるときはいつでも使用する必要がありますか?暗黙待ちセレン

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); 

答えて

1

driverを初期化する際に暗黙の待機を使用する必要があります。明示的な待機は、デバッグ時に追跡する方がはるかに簡単で、Page Objectのように、より詳細に設計されています。

driverの暗黙的な待機時間を設定すると、消費者や将来のメンテナからかなりの設定を隠したまま、待機時間にグローバルな影響があります。特に、WebDriverWaitを介して明示的な待機時間と対になっている場合は、この問題が発生する可能性があります。待ち時間に予期せぬ追加が発生する可能性があります。

は、ここで明示的な待機の例です:2とするときにそれらを使用するとの長所と短所の

var webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(5)); 

webDriverWait.Until(ExpectedConditions.ElementExists(By.Id("testId")); 

より徹底比較はhereを見つけることができます。

+0

あなたの説明とあなたの答えをありがとう。このコードをどこに置くべきですか?var webDriverWait = new WebDriverWait(driver、TimeSpan.FromSeconds(5)); ' –

+0

これは依存しています。ページオブジェクトを使用している場合は、指定された時間を使用するたびに均一にするには、UIインタラクションの単一のメソッド(LoginPage.Login()など)またはクラス(たとえばLoginPage)ページ内で理想的には、コード内で具体的なものになりたいと思っています。 – Jordan

+0

暗黙の比較と明示的な待機の詳細については、これらの回答が良いです - https://stackoverflow.com/a/15174978/631417、https://stackoverflow.com/a/28067495/631417 – Jordan

関連する問題