2014-12-27 81 views
0

我在使用JAVA中的Selenium web驅動程序來測試功能。與此同時,我開發了一個Firefox附加功能。當Selenium嘗試訪問下一頁時(可以說 - 當我點擊登錄按鈕時),我正面臨500內部服務器錯誤。我認爲這是因爲該插件尚未完成其功能。該插件嘗試並行訪問多個網址。現在我該如何讓我的硒web驅動程序等待我的firefox插件完成執行。我嘗試過Thread.sleep(時間)。但時間限制各不相同,我不想浪費很多時間在睡覺。我怎樣才能使Web驅動程序等到插件完成執行?如何讓selenium web驅動程序等到我的firefox插件完成執行

FirefoxProfile profile = new FirefoxProfile(); 
    /* Add plugin to the profile*/ 
    WebDriver firefoxDriver = new FirefoxDriver(profile); 
    firefoxDriver.navigate().to("URL"); 
    WebElement username = firefoxDriver.findElement(By.id("User")); 
    WebElement password = firefoxDriver.findElement(By.id("Password")); 
    username.clear(); 
    password.clear(); 
    username.sendKeys("userid"); 
    password.sendKeys("passwd"); 
    firefoxDriver.manage().timeouts().implicitlyWait(300, TimeUnit.SECONDS); 
    firefoxDriver.findElement(By.className("log-on-btn")).click(); 

這是我用來測試功能的示例代碼。

回答

0

請使用:

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

它會等待/暫停webdriver的操作來運行,直到在幾秒鐘內你設定的時間。 您可以根據需要設置秒,分鐘。

+1

是的。我試過這個選項。但問題是插件需要花費不同的時間(2-3分鐘)才能完成其功能。在這種情況下,我不希望我的所有頁面在執行前等待2-3分鐘,因爲需要爲我在子域中訪問的每個頁面執行此插件。 – googytech

+0

但我認爲我們不能分開等待插件和網站頁面等功能。 –

+0

更好地分享您創建的代碼,以便我可以檢查並提供一些解決方案。 –

相關問題