我正在使用硒(Java)自動化一個Web應用程序,它使用Youtube進度條,顯示網頁頂部的頁面加載進度。我需要編寫一個等待函數,等待這個進度條到達並加載頁面。這些進度條沒有任何自己的ID。我如何編碼等待進度條完成加載?如何自動執行硒等待Youtube像步進酒吧
0
A
回答
1
YouTube的進度條具有在加載以下細節 -
<div id="progress" class="waiting" style="transition-duration: 900ms; width: 60%;"><dt></dt><dd></dd></div>
隨着加載繼續width屬性值增加至100%。然後這個進度條從DOM中刪除(以及我無法在檢查部分找到它)。嘗試將網絡速度從Chrome開發人員工具中調整到最小,以便在DOM中查看這一點。
您可以在此進度div寬度屬性(需要自定義等待)或隱形或存在上設置顯式等待。取決於你使用自動化的語言。甚至使用javascriptexecutor自定義等待來運行jquery來檢查此元素。
0
首先這裏是我經常用來確定元素是否可見的一些方法。對不起,這些是在C#不是Java,但應該非常接近。
public void WaitForElementVisibile(IWebDriver driver, By selector)
{
var attempts = 0;
while (attempts < 2)
{
try
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(90));
wait.PollingInterval = TimeSpan.FromMilliseconds(300);
wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(selector));
break;
}
catch (WebDriverException)
{
attempts++;
}
}
if (attempts >= 2)
{
TakeScreenshot(driver);
log.Error("Failed to located element " + selector.ToString() + " for " + Capabilities.BrowserName);
throw new NoSuchElementException("Cannot locate " + selector.ToString() + " for " + Capabilities.BrowserName);
}
}
如果更換VisibilityOFAllElementsLocatedBy()
到InvisibilityOfElementLocated()
將更改消息要等到一個元素是不可見的。
如果您對TakeScreenshot()
方法感興趣,我也可以提供。
但希望使用類似上述方法的東西,您可以等待加載完成後出現的元素。也許有一些文字顯示「加載完成」或其他內容。
如果您提供Url以便我可以看到該頁面,我可以提供進一步的幫助。希望這可以幫助。
相關問題
- 1. 硒 - 如何等待?
- 2. 等待酒完成運行
- 3. 動態圖形,pieCharts,酒吧等
- 4. 如何添加我自己的主題行動酒吧Scherlock android
- 5. 如何在酒吧內移動到左側的酒吧內進行動畫,而實際的酒吧移動到右邊
- 6. 如何在硒中執行一般等待
- 7. Swift Progress視圖動畫使酒吧進一步超過100%
- 8. 如何使酒吧和進度線?
- 9. C#線程同步(等待執行)
- 10. 等待很多異步函數執行
- 11. 執行C#函數時異步等待
- 12. 等待執行
- 13. 使用pselect進行同步等待
- 14. 測試自動化的progres酒吧
- 15. PHP等待後臺進程執行
- 16. 等待被執行
- 17. android - 兩色行動酒吧背景
- 18. 硒等待下載?
- 19. 硒goBack和等待
- 20. phpwebdriver硒等待ajax
- 21. 等待圖像滿載硒的webdriver
- 22. 硒PhantomJS等待圖像可用
- 23. 使用等待與硒web驅動程序異步內容
- 24. Javascript遊戲:移動酒吧
- 25. CSS浮動文本酒吧
- 26. D3互動H-酒吧
- 27. 如何在Javascript中等待執行線?
- 28. 如何等待UIDocument openWithCompletionHandler執行?
- 29. Java:如何等待fileChanged執行?
- 30. 流星酒吧/子行爲