如何使用 Capybara 等待图像加载?这是我的应用程序代码:
-- <img src="data:image/jpeg.*" class="some class" alt="Image">
我曾尝试使用那些 class
和 img
属性的 wait_for
方法,但没有成功。它从不等待该图像加载。
最佳答案
img 元素有一个 complete 属性,指示图像是否已加载。因此,一些类似的东西
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')
*** 注意:我还没有实际尝试自定义选择器代码,但它应该足够接近以提供指导
关于ruby - 使用 Capybara SitePrism 等待图像加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34424872/