Cucumber-Capybara:save_screenshot(path, full: true) 没有捕获完整的浏览器?
Cucumber-Capybara: save_screenshot(path, full: true) is not capturing the full browser?
我使用的是最新的 Chrome 浏览器,版本 57.0.2987.133(64 位),以及最新的 chromedriver v2.29(尽管我已经尝试使用 Chrome 56 和 chromedriver 2.27),我遇到了一个问题,当测试失败时我无法捕获完整的浏览器。
这是我的 env.rb 文件中的代码:
Capybara::Screenshot.register_driver(:chrome) do |driver, path|
driver.browser.save_screenshot(path, full: true)
end
但是,我得到的屏幕截图只是一部分,我在屏幕上看到的,而不是完整的浏览器。
知道我是否做错了什么或者我是否可以尝试不同的方法?
谢谢!
由于您使用的是 chrome,我假设您使用的是 selenium 驱动程序 (selenium-webdriver)。 selenium 驱动程序不支持将任何选项传递给 save_screenshot
,并将选项传递给 page.driver.screenshot
-https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb#L34 - 将引发参数过多错误(在您的情况下,我假设 capybara_screenshot gem 捕获并忽略)并且不保存屏幕截图。相反,如果您调用 driver.save_screenshot(path, full: true)
它将拍摄,但传递的任何选项都将被忽略,因为它们不受支持。此外,由于 WebDriver 规范被定义为对视口进行拍摄(可见 window),我不希望 selenium 很快支持全屏拍摄。
如果您使用 selenium 制作屏幕截图并且想要更大,您唯一的选择是在截屏之前增加 window 大小。
我使用的是最新的 Chrome 浏览器,版本 57.0.2987.133(64 位),以及最新的 chromedriver v2.29(尽管我已经尝试使用 Chrome 56 和 chromedriver 2.27),我遇到了一个问题,当测试失败时我无法捕获完整的浏览器。
这是我的 env.rb 文件中的代码:
Capybara::Screenshot.register_driver(:chrome) do |driver, path|
driver.browser.save_screenshot(path, full: true)
end
但是,我得到的屏幕截图只是一部分,我在屏幕上看到的,而不是完整的浏览器。
知道我是否做错了什么或者我是否可以尝试不同的方法?
谢谢!
由于您使用的是 chrome,我假设您使用的是 selenium 驱动程序 (selenium-webdriver)。 selenium 驱动程序不支持将任何选项传递给 save_screenshot
,并将选项传递给 page.driver.screenshot
-https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb#L34 - 将引发参数过多错误(在您的情况下,我假设 capybara_screenshot gem 捕获并忽略)并且不保存屏幕截图。相反,如果您调用 driver.save_screenshot(path, full: true)
它将拍摄,但传递的任何选项都将被忽略,因为它们不受支持。此外,由于 WebDriver 规范被定义为对视口进行拍摄(可见 window),我不希望 selenium 很快支持全屏拍摄。
如果您使用 selenium 制作屏幕截图并且想要更大,您唯一的选择是在截屏之前增加 window 大小。