2011-07-19 20 views
1
Selenium.WaitForPageLoad("50000"); 
Selenium.Click("title"); 

ほとんどの場合、50000を超えるとタイムアウトエラーが発生します。私は時間を増やしたくありません。 「望む限り長く取る」のようなものを与える方法はありますか?セレンのタイムアウトを効果的に処理するには?

答えて

1

私はそれをお勧めしますが、あなたは無期限に待機するセレンをしたい場合は、try-catchブロックを使用していませんループ:

while (true) 
{ 
    try 
    { 
     Selenium.WaitForPageLoad("5000"); 
     break; //executed if page finished loading 
    } 
    catch (Exception) 
    { 
     //ignore the timeout exception 
    } 
} 

この場合も、おそらくタイムアウトは一般的には良いことです。何をしようとしているかによって、特定の要素がページ全体ではなく読み込みを完了したかどうかを確認することを検討するとよいでしょう。

1

あなたは本当にそれがかかるまでかかるようにしますか?それは一日中ぶら下がってしまうかもしれません...

私は、実行に時間がかかっても、以前はずっと前に失敗していました。

以前はWatiNを使用していましたが、.WaitUntil()コマンドを使用してページの特定の要素が読み込まれていることを確認できます。セレンの同等のものが何であるかは不明です。あなたはアドインを作成する満足している場合

このリンクは、役立つことがあります。

http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/Wait.html

+0

を作品waitForTextPresent、waitForElementPresent、waitForVisible ...それはあなたを待っているものに依存します。 –

0

これらのコマンドの順序を逆にしましたか?

Selenium.Click("title"); 
Selenium.WaitForPageToLoad("50000");

それとも単に使用:

Selenium.ClickAndWait("title");
0

これは私のため

/** 
    * Put the Thread to Sleep for the specific time 
    * @param delay 
    */ 
    private void sleep(long time) { 
     try { 
     Thread.sleep(time); 
     } catch (InterruptedException e) { 
     } 
    } 

    //Inside my Test Method 

    //check if the element is loaded 
    while (!webElement.isLoaded) { 
     //sleep for a sec 
     sleep(1000); 
     } 
関連する問題