如何在一个延迟加载图像的网页上使用watir webdriver捕获屏幕截图

时间:2012-08-21 17:19:40

标签: ruby watir watir-webdriver

我正在使用watir webdriver对网页进行一些自动化测试。当用户将内容滚动到视图中时,页面有许多延迟加载的图像(使用jquery lazyload插件)

我在做

10.times do
    browser.send_keys :space
end

要在视图中滚动项目,它会正常加载 我也做了

browser.div(:id => 'footer').wd.location_once_scrolled_into_view 

将其滚动到底部 然后我做了

browser.screenshot.save

这似乎没有捕获任何通过jquery插件延迟加载的图像。

我该怎么做才能捕获整个页面

2 个答案:

答案 0 :(得分:2)

您可以做的最简单的事情是滚动到页面底部。计算图像,发送space,再次计算图像。如果图像数量增加,请再次发送space。如果数字相同,则表示您已加载所有图像。

像这样(未经测试):

old_image_count = 0
new_image_count = browser.imgs
while old_image_count < new_image_count
  old_image_count = browser.imgs
  browser.send_keys :space
  new_image_count = browser.imgs
end

答案 1 :(得分:0)

而不是:

browser.screenshot.save

尝试:

browser.driver.save_screenshot("<path>/photo.jpg")