我需要在自動化測試用例的每個操作後使用此「Thread.sleep(5000)」命令。 是否有任何替代方法可以在每個操作後跳過寫這個命令。在selenium webdriver中使用「Thread.sleep(5000)」命令的替代方法
如果我跳過這個命令,我得到了「超時」和「找不到元素」的錯誤。
我需要在自動化測試用例的每個操作後使用此「Thread.sleep(5000)」命令。 是否有任何替代方法可以在每個操作後跳過寫這個命令。在selenium webdriver中使用「Thread.sleep(5000)」命令的替代方法
如果我跳過這個命令,我得到了「超時」和「找不到元素」的錯誤。
將Thread.sleep(5000)
每次操作後肯定不是好主意。如果你有很多測試,那麼完成所有的測試需要很長時間(比如幾個小時)。
對於這些情況,WebDriver中存在waiting
機制,它基本上同步代碼和瀏覽器行爲中的操作,因此您不會獲得ElementNotFoundException
,因爲所有操作都將被同步。
你可以看到很多的例子硒文檔http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
您可以使用隱式等待。你初始化你的webdriver後添加此行: (在C#示例)
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
隱含的等待是要告訴的webdriver試圖找到一種或多種元素時,輪詢DOM一定 的時間如果他們是 不立即可用。默認設置爲0.一旦設置, 隱式等待設置爲WebDriver對象實例的生命週期。
[這個答案](https://stackoverflow.com/a/7312740/2718874)幫我看看這個 – Josh