【问题标题】:Save screenshot with Watir使用 Watir 保存屏幕截图
【发布时间】:2011-12-03 18:40:19
【问题描述】:

我正在将 Watir 与 Ruby on Rails 一起使用。

我需要使用 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 秒内加载页面,并且屏幕截图也没有保存。知道出了什么问题吗?

【问题讨论】:

    标签: ruby-on-rails watir watir-webdriver safariwatir


    【解决方案1】:

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

    您正在使用 safariwatir gem,但您正在尝试使用 watir-webdriver 的 driver.save_screenshot 保存屏幕截图。我建议您使用 Firefox 进行屏幕截图。

    只需安装 watir-webdriver gem 并更改

    @browser = Watir::Safari.new
    

    @browser = Watir::Browser.new :ff
    

    有关更多信息,请阅读我的 Watir 书籍的免费版本:

    https://github.com/zeljkofilipin/watirbook/downloads

    【讨论】:

    • 我查看了文件 safariwatir.rb 发现它在 Browser 类中没有截图所需的驱动方法。我一直在尝试改用 watir-webdriver,但我无法将它包含在我的程序中。阅读这篇文章stackoverflow.com/questions/8365555/…。感谢您尝试帮助我。如果您能提供帮助,请告诉我。
    • 我看了你的另一个问题,但我不知道 Rails 是如何工作的,所以我无能为力。
    • 我能够解决这个问题。我在某处读到,无法包含 gem,可能是因为我的机器上安装了多个版本的 ruby​​。所以我删除了所有东西并重新安装了所有东西,它工作正常。谢谢。
    【解决方案2】:

    试试下面的浏览器类,它对我有用。

    Browser::BROWSER.driver.save_screenshot(screenshot)
    

    (reference)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2014-07-19
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多