Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用Watir保存屏幕截图_Ruby On Rails_Watir_Watir Webdriver_Safariwatir - Fatal编程技术网

Ruby on rails 用Watir保存屏幕截图

Ruby on rails 用Watir保存屏幕截图,ruby-on-rails,watir,watir-webdriver,safariwatir,Ruby On Rails,Watir,Watir Webdriver,Safariwatir,我正在使用Watir和rubyonrails 我需要使用Watir保存几页的屏幕截图。我已经成功获取了要在浏览器中显示的页面,但还无法保存屏幕截图。这是我的密码: @browser = Watir::Safari.new folios_screenshot_path = Rails.root.join('screenshots/') @page = Page.find(5) cur_url = root_url + 'pages/' + @page.id.to_s @browser.goto c

我正在使用Watir和rubyonrails

我需要使用Watir保存几页的屏幕截图。我已经成功获取了要在浏览器中显示的页面,但还无法保存屏幕截图。这是我的密码:

@browser = Watir::Safari.new
folios_screenshot_path = Rails.root.join('screenshots/')
@page = Page.find(5)
cur_url = root_url + 'pages/' + @page.id.to_s
@browser.goto cur_url
@browser.div(:id => "page").wait_until_present
@browser.driver.save_screenshot(pagess_screenshot_path + '/' + @page.id.to_s + '.png')
@browser.close

在我加载的页面中,有一个id为“page”的div元素,我试图让Watir等待该元素加载到Watir浏览器中。但是在我的主浏览器中,我发现错误无法在10秒内加载页面,并且屏幕截图也没有保存。有什么问题吗?

有几个watir宝石:watir(windows上的IE驱动器)、safariwatir(mac上的safari驱动器)、watir webdriver(驱动所有流行操作系统上除safari之外的所有流行浏览器)

您正在使用safariwatir gem,但您正在尝试使用watir webdriver的
驱动程序保存屏幕截图。保存屏幕截图
。我建议您使用Firefox进行屏幕截图

只需安装watirwebdriver并进行更改

@browser = Watir::Safari.new

有关更多信息,请阅读免费版的my Watir book:


试试下面的浏览器类,它适合我

Browser::BROWSER.driver.save_screenshot(screenshot)

()

我查看了safariwatir.rb文件,发现它在Browser类中没有用于截图的driver方法。我一直在尝试改用watir webdriver,但我无法将其包含在我的程序中。阅读这篇文章。谢谢你试着帮我。请让我知道你是否能在这方面提供帮助。我看了你的另一个问题,但我不知道Rails是如何工作的,因此我无法在这方面提供帮助。我能够解决这个问题。我在某个地方读到,不能包含gem,可能是因为我的机器上安装了多个版本的ruby。所以我删除了所有的东西,重新安装了所有的东西,一切正常。谢谢
Browser::BROWSER.driver.save_screenshot(screenshot)