我正在寻找确认图像实际加载的方法。也许JavaScript是一个选项?我现在正在使用WebdriverWait
来强制等待所有图像,然后是实际的src
,然后我终于在...之后运行我的测试了。
wait = WebDriverWait(driver, 10)
...
albums = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".albums .album img")))
albumslength = len(albums)-1
while albumslength > 0:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ('.album:nth-child('+str(albumslength)+') img[src*="album-foo"]'))))
albumslength -= 1
...
这会在某些时候确认相册中每张专辑的<img src="http://www.album-foo/images/blah.jpg"
中存在“ album-foo ”。但它并未确认图像已完成加载到视图中。我搜索过高低,有人有解决方案吗?
我正在Chrome和Firefox上进行测试,因此如果这些想法变得包含可能存在环境限制的JavaScript或相关提示,则不会出现幻像或IE限制。
答案 0 :(得分:0)
我对硒没有经验,但我会尝试一下。 如果你想检查是否加载了图像,我会说使用布尔值。设置此布尔值的原始值,假设'loaded'为false。
然后只需调用类似的东西,确保它在图像加载时返回true。
Boolean loaded = false;
WebDriver driver = new AnyDriverYouWant();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor)driver;
}
loaded = (Boolean)js.executeScript("image.onload(function() { return true; });");