2011-02-04 5 views
1

3000ミリ秒後にタイムアウトは、いくつかのテストは私の遅いビルドマシン上でランダムに失敗すると、このエラーを与えている:selenium.waitForPageToLoad(「3000」)私はセレンを使用していくつかの非常に簡単なテストを実行しています

com.thoughtworks.selenium .SeleniumException:このコードに対して3000ms

後にタイムアウトしました:

seleniumStart(); 
selenium.open("*****"); 
selenium.waitForPageToLoad("3000");  
selenium.type("j_username", LoginTest.DEFAULT_ADMIN_USERNAME); 
selenium.type("j_password", LoginTest.DEFAULT_ADMIN_PASSWORD); 
selenium.click("loginbutton"); 
selenium.waitForPageToLoad("3000"); 
selenium.click("nav_form:managepatients"); 

それはフロントエンドとして春のセキュリティ、およびJSFを使用しています。なぜこれが邪魔になるのか誰にも分かりますか?私は2日間このままで立ち往生しています。

ありがとうございます。

答えて

2

3000msはわずか3秒です。これは、ページが読み込まれるまでに時間がかかりません。そのため、タイムアウトを上げる必要がありますか? waitForPageToLoadのために30000ミリ秒が適切と思われるでしょう。

+0

@Zarkonnenさん、ありがとうございました。 – Ikthiander

+0

LOL 30秒、10秒で十分だと思うけど、そうだね –

0

おそらくページでは、それはあなたの最善を動作しない場合は30000を言うためにタイムアウトを上げる試みたが、その時にロードされていないが、セレンは、よりに私のために働いているもの

2

を実行している間、ブラウザを監視することですselenium.waitForPageToLoad("xxxxxx");より堅牢なファッションがある - これは、いくつかの所定の要素の負荷まで待って、その後のアクションを実行することができます

while (!(selenium.isElementPresent("any element on page")==true)) { 
    selenium.setSpeed("10"); 
    Thread.sleep(10); 
    } 

。応答時間を測定することも良いです...

0

ページの読み込み時間を長くすることができます。 OR 使用:selenium.setSpeed("2000"); - 2秒間待機するsetSpeedに記載されているミリ秒単位でsetSpeed遅延後に各コマンドを実行します。したがって、この操作では、各操作の後に2秒の間隔があり、操作が完了するのに役立ち、次の操作に引き継がれます。

関連する問題