2017-11-20 14 views
0

私はSelenium Gridには比較的新しく、テストの安定性に問題があります。私は、グリッドとRemoteWebDriverを経由して私のテストを実行しているいくつかの理由については、私のテストが断続的に言うIEDriverServer開口ページにはまり、Selenium Grid - テスト失敗時に何かをする

"This is the initial start page for the WebDriver server."

これは反対入れますテストの残りの部分を引き起こし100回中100回のテストのうち99回が再実行に成功するため、このマシンは失敗する可能性があります。

私は次のようなことをしたいと思っていますが、実装できないようです。ここでは擬似コードは次のとおりです。

if(initialWebDriverPageTextIsOnPage > 30seconds) 
{  
    driver.Close(); 
    driver.Dispose(); 
} 

私はこのように感じる一貫ポーリングページリスナーとしての私のbasetestに合うことができるが、私はこれを実装する方法を見つけ出すように見えることはできません。

何かアドバイス、またはあなたが明確な期間を待つためにあなたの意図したURLを待ちたいと、あなたはWebDriverWaitすなわちExplicitWaitを誘導することができる根本的な原因が大幅に

+0

アドバイスとして私がお勧めすることができます代わりにUrlToBeとしてExpectedConditions句のeは、あなたはまた、次の句のいずれかを使用することができます問題の根本原因を理解する)。 – Mihail

+0

おそらく、ハブとノードの間の接続が不安定なために表示される可能性があります。 Btw、タイムアウト例外が発生する前にテストがハングする時間は?そして、そのエラーの完全なスタックトレースを提供していただけますか? – Mihail

+0

お返事ありがとうございます。通常、テストがタイムアウトする前に、正確に1分間停止します。私はページの読み込みに明示的な待機を追加し、おそらく問題を解決したようです。たぶん、ページがロードされる前に要素とやりとりしようとしていたのかもしれません。この問題が解決すれば解決策が返ってきます。さもなければ、私はスタックトレースを提供し、そこから移動することができます。 – JOberloh

答えて

0

をいただければ幸いれているものについての提案ExpectedConditions適切な句を使用して、次のように:alternativとして

WebDriverWait wait_4_link = new WebDriverWait(driver, new TimeSpan(0,0,10)); 
    if(wait_4_link.Until(ExpectedConditions.UrlToBe("your_intended_url"))) 
    { 
     //Your Test Code 
    } 
    else 
    { 
     driver.quit(); 
    } 

をすべてのログ(ノード、ハブ、ドライバ、クライアントを有効にし、しようとする

wait_4_link.until(ExpectedConditions.UrlContains("your_url_fraction")); 
wait_4_link.until(ExpectedConditions.UrlMatches("regex_pattern_of_url")); 
関連する問題