我想等待页面完全加载。我知道我可以通过等待页面元素加载来做到这一点。
但是我想要更通用的东西,我假设可以使用Favicon来确定页面是否已完全加载。
如何使用Selenium Webdriver确定FavIcon是否已加载到页面中?
“我知道这只是你的HTML源代码中的另一个元素。但是如果你查看任何网页上的页面加载,Favicon将是最后一个被加载的。如果有一种方法可以等到Favicon加载到网页上,我们可以使用它作为waitforpagetoload来测试整个应用程序(对于一个web应用程序,Favicon在所有网页上都是相同的)。”
我不确定等待法维康是否是个好主意。不同的应用程序使用不同的技术,在IMO中,不可能存在适用于所有web应用程序的通用等待。下面是我在“我的”应用程序中使用的。这给了你一个主意。您需要构建适合您的应用程序。
public void my_generic_wait_for_page_load() {
final WebDriverWait wait = new WebDriverWait(this.getDriver(), 300);
final JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
final ExpectedCondition<Boolean> jQueryActive_toBeZero = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
try {
return ((Long) jsExecutor
.executeScript("return jQuery.active") == 0) ? true
: false;
} catch (final WebDriverException e) {
log.warn("It looks like jQuery is not available on the page, skipping the jQuery wait, check stack trace for details",e);
return true; //skip the wait
}
}
};
final ExpectedCondition<Boolean> document_readyState_toBeComplete = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
return jsExecutor.executeScript("return document.readyState")
.toString().equals("complete") ? true : false;
}
};
wait.until(jQueryActive_toBeZero);
wait.until(document_readyState_toBeComplete);
}
如何使SeleniumWebDriver在只有src属性的情况下等待iframe完全加载。我试图创建一个测试用例,其中包含表单元素的iframe从不同的源加载,而切换到此iframe时,此iframe的内容不可用,因此测试失败。因此,我如何使Webdriver等待iframe完全加载。
我使用等待块使代理等待,直到条件为真(资源空闲)。我尝试在等待块“输入”字段中写入以下内容: 问题是,如果资源变得繁忙,代理将被困在等待块中,不会被释放,即使条件再次变为真。然后,当下一个代理进入等待块时(条件再次变为真),它将传递原本在它前面的代理,但现在被卡住了。有办法解决这个问题吗?
我实际上有三个问题: Selenium WebDriver如何实现此 因为我们不能给无限睡眠的线程一个负值。 有没有更好的方法来实现无限等待? 我们在SeleniumWebDriver文档中看到了这一点
问题内容: 我正在开发Chrome中的扩展程序,但我想知道:找出元素何时存在的最佳方法是什么?使用纯JavaScript,间隔检查直到元素存在,或者jQuery是否有一些简单的方法来执行此操作? 问题答案: 由于性能问题,不建议将其与其他DOM突变事件一起弃用- 推荐的方法是使用MutationObserver来监视DOM。不过,只有新的浏览器才支持此功能,因此您应该在不可用时退回。
如何让代码等待页面在Nodejs中完全加载?我使用SeleniumWebDriver版本4.0。0
我在eclipse中使用SeleniumWebDriver和TestNG。问题是页面在某些数据的中途重新登录,并且重新加载的时间是灵活的,这就是为什么我不能应用显式等待时间。我想让webdriver等待,直到重新加载完成。 我正在尝试通过此代码执行此操作……但它不起作用。