2011-02-04 51 views
1

我使用硒運行一些很簡單的測試,有的測試我的緩慢構建機器上隨機失敗,給這個錯誤:selenium.waitForPageToLoad(「3000」)超時後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

3000毫秒只有3秒,這可能不足以讓頁面有時加載,所以也許你只需要提高超時時間? waitForPageToLoad的30000毫秒似乎更合適。

+0

謝謝@Zarkonnen,工作。 – Ikthiander 2011-02-04 12:12:10

0

大概頁面沒有在那個時候加載,你試圖提高超時說30000,如果不工作,你最好的辦法是同時硒運行看瀏覽器

2

什麼是更適合我強大的時尚比selenium.waitForPageToLoad("xxxxxx");是 -

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

這使您可以等到某個預定單元載荷,然後進行後續操作。測量響應時間也很好...

0

您可以增加等待頁面加載時間。 或 使用:selenium.setSpeed("2000"); - 將等待2秒它在setSpeed延遲後運行setSpeed中提到的毫秒數後的每個命令。所以在這種情況下,每次操作之後都會有2秒的差距,這將有助於操作完成,並且將移交到下一個操作。