使用selenium-webdriver / rc rails的整个网页的ScreenShot

时间:2014-08-28 07:58:07

标签: ruby-on-rails ruby selenium selenium-webdriver selenium-rc

我正在尝试使用selenium-webdriver截取给定链接的屏幕截图。我正在使用以下脚本

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.navigate.to 'URL'
driver.save_screenshot('screenshot.png')
driver.quit

这个工作正常,但它只是截取可见区域的截图。我也试过

driver.capture_entire_page_screenshot('test.png','');

driver.capture_entire_page_screenshot('test.png');

但我得到未定义的方法capture_entire_page_screenshot'错误任何建议如何实现这一点。 更新,也尝试了下面的选项,它正在工作,但只采取可见/完整截图的截图。对于可见区域,我的意思是如果我的页面滚动它没有截取整页的屏幕截图。

require 'rubygems'
require 'selenium'
require 'selenium-webdriver'
require 'selenium/client'
require 'selenium-rc'

@selenium = Selenium::Client::Driver.new("localhost", 4444,"*chrome", "someurl", 1000);
@selenium.start

@selenium.open ""

@selenium.wait_for_page_to_load "3000"
@selenium.send(:sleep, 4) # Wait for Flash and other crap to load
@selenium.capture_entire_page_screenshot('/path/to/save/screenshot.png', '');
@selenium.stop

还有一种方法可以使用代理吗?

1 个答案:

答案 0 :(得分:2)

这是Selenium贡献者群体的已知问题,显然取决于Chrome(Chromium)中修复的错误。见这个主题:

https://code.google.com/p/chromedriver/issues/detail?id=294

线程有一些黑客可以解决这个问题,直到(如果?)Google修复上述错误