PhantomJS可以选择整个页面的截图(而不仅仅是当前的视口)。有什么方法可以使用Selenium?我正在无头无终地运行黄瓜/水豚测试,使用无头宝石。我会使用PhantomJS,但我还有其他一些问题。是否可以使用Selenium/Capybara截取整个页面的屏幕截图?
回答
原来我一直在使用无头的宝石提供的take_screenshot
方法,当时我刚刚使用了page.save_screenshot()
方法,它完全符合我的需要。谢谢你,安德烈。
你也可以做这样的事情:
After do |scenario|
take_screenshot(@browser, scenario)
end
def take_screenshot(browser, scenario)
if scenario.failed?
scenario_name = scenario.name.gsub /[^\w\-]/, ' '
time = Time.now.strftime("%Y-%m-%d %H%M")
screenshot_path = './failed_png/' + time + ' - ' + scenario_name + '.png'
else
scenario_name = scenario.name.gsub /[^\w\-]/, ' '
time = Time.now.strftime("%Y-%m-%d %H%M")
screenshot_path = './success_png/' + time + ' - ' + scenario_name + '.png'
end
browser.save_screenshot(screenshot_path)
end
如果你犯了一个failed_png和success_png文件夹,这个代码将每个成功和失败的截图,并把它放在各自的文件夹与时间戳在上面。这段代码放在你的env.rb文件中,这样你就不必使用任何助手或者为你的step defs添加额外的代码。
谢谢惠特尼。我已经有了自动屏幕截图,但只有在出现故障的情况下。为了进行调试,我还输出了失败时的html。我使用了'File.open(“errors /#{filename} .html”,'w'){| f | f.write(page.html)}' – TrashyMcTrash
非常感谢!我选择使用'puts save_screenshot(nil,full:true)',以便生成一个随机文件名并将其打印出来。 –
- 1. webdriverio - 截取整页的屏幕截图
- 2. 以整个屏幕的屏幕截图
- 3. Phantomjs - 截取网页的屏幕截图
- 4. 使用html5/javascript截取整个屏幕的截图?
- 5. 整个网页的屏幕截图(localhost)
- 6. C++截取屏幕截图
- 7. 截取屏幕截图
- 8. node-webkit或atom-shell可以截取整个桌面屏幕吗?
- 9. 如何截取呈现的HTML页面的屏幕截图
- 10. SpriteKit屏幕截图的屏幕截图
- 11. 是否可以从Firefox的Android扩展中截取屏幕截图?
- 12. 我可以使用vuejs获取桌面屏幕截图
- 13. 使屏幕截图细节页面UI?
- 14. 是否可以使用画布截取整个网页?
- 15. ASPX页面的屏幕截图
- 16. 以编程方式拍摄整个屏幕的屏幕截图
- 17. 整个页面ruby中机械化的屏幕截图
- 18. Media Projection api可以在棒棒糖主屏幕上截取屏幕截图吗?
- 19. 是否可以使用adb截取通过蓝牙连接的可穿戴设备的屏幕截图?
- 20. 采取整个网页的屏幕截图
- 21. 是否可以从adb调用ICS屏幕截图功能?
- 22. 以当前屏幕的屏幕截图
- 23. 在Rails中截取屏幕截图
- 24. Windows 8 cli截取屏幕截图
- 25. 屏幕截图
- 26. 如何使用此库截取Android(模拟器)的截图并在哪里可以获取屏幕截图
- 27. 是否可以生成HTML部分的屏幕截图?
- 28. 使用Android SDK拍摄主页屏幕截图可以吗?
- 29. 从网页抓取屏幕截图
- 30. xna 4采取桌面屏幕截图
水豚有一个方法 - http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Session#save_screenshot-instance_method。它也支持Selenium –