2014-12-02 33 views
-1

我正在使用Eclipse和Java在Selenium中構建一個自動化測試包。我發現我在做的事情是,有時某些行動可能比以前需要更長的時間。所以,雖然我知道我需要實施某種等待命令,但我想知道哪種方法最有效?本質上,我想要的是網頁在控制檯返回錯誤之前等待X秒。什麼是Selenium中使用的最佳等待命令

另外,根據過去的人們的經驗,實現這個目標的最好方法是什麼?我在想,我創建了一些'等待命令'類,它將有一系列可以根據場景使用的方法。這是正確的方法嗎?

+0

他們是** **所有最好的!你有什麼嘗試?什麼工作?什麼沒有奏效? – SiKing 2014-12-02 16:42:50

+0

你好,我問的原因是我已經建議不要使用Thread.Sleep(),因爲它意味着網頁在規定的時間內停止。我的烏托邦場景會讓每個頁面等待10秒,這樣所有的元素都會被加載並定位。我已經使用了ImplicitWaits等,但只是在特定場景中最適合使用哪些提示之後? – 2014-12-02 16:46:12

+0

如果存在完美的解決方案,您不認爲它已經被內置到Selenium中了嗎? – SiKing 2014-12-02 17:19:02

回答

1

硒已經成熟,內置等待機制。

它有隱含的等待,這意味着當您導航到新頁面時,它會在頁面上執行任何操作之前等待整個頁面加載。

在使用Ajax的地方,上述可能沒有幫助,因此我們必須使用顯式等待來確保ajax請求已完成。例如:

(new WebDriverWait(driver, 10)) 
    .until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement"))); 

請查看以下鏈接,瞭解更多詳情 http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits

+0

謝謝迪帕克,我會看看這個。非常翔實 – 2014-12-02 16:48:44

+1

不要忘記流利的等待。 https://selenium.googlecode.com/git/docs/api/java/index.html?org/openqa/selenium/support/ui/FluentWait.html我會想象如果你想要拿出完美的解決方案,那麼流利的等待將是要走的路。 – SiKing 2014-12-02 17:21:14

相關問題