如何使用Capybara等待图像加载?这是我的应用代码:
-- <img src="data:image/jpeg.*" class="some class" alt="Image">
我尝试使用wait_for
方法并使用class
和img
属性,但没有运气。它永远不会等待加载该图像。
答案 0 :(得分:1)
img元素具有完整属性,指示图像是否已加载。因此,有些东西是
start = Time.now
while true
break if find('img.some_class')['complete']
if Time.now > start + 5.seconds
fail "Image still not loaded"
end
sleep 0.1
end
假设img元素已经在页面上,将等待最多5秒钟以完成加载。
这也可以作为自定义选择器实现,其中包含
行Capybara.add_selector(:loaded_image) do
css { |locator_class| "img.#{locator_class}" }
filter(:loaded, default: true, boolean: true) { |node, value| not(value ^ node['complete']) }
end
然后可以被称为
find(:loaded_image, 'some_class')
***注意:我实际上没有尝试过自定义选择器代码,但它应足够接近以提供指导