我正在使用硒(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. 流星酒吧/子行为