从 Cukes Google Group 交叉发布:
我尝试过多种保存截图的方法,
但最终选择了 watir-webdriver 中内置的方法。不
无论我使用哪种方法,我都无法成功嵌入
Cucumber HTML 报告中此图像的链接。
在 c:\ruby\cucumber\project_name\features\support\hooks.rb 中,我正在使用:
After do |scenario|
if scenario.failed?
@browser.driver.save_screenshot("screenshot.png")
embed("screenshot.png", "image/png")
end
end
报告中添加了带有文本“屏幕截图”的链接,但 URL 为
项目目录路径("c:\ruby\cucumber\project_name")
相当
而不是直接链接到文件("c:\ruby\cucumber\project_name\screenshot.png")
。我尝试了多种不同的图像格式
和使用 Dir.pwd 的直接路径每次都有相同的结果。
我缺少什么?
Thanks
视窗XP
红宝石 1.8.7
watir-webdriver (0.2.4)
黄瓜 (0.10.3)
Aslak:
尝试这个:
After do |scenario|
if scenario.failed?
encoded_img = @browser.driver.screenshot_as(:base64)
embed("data:image/png;base64,#{encoded_img}",'image/png')
end
end
Aslak
Adam:
Aslak 能够看到嵌入的
我通过电子邮件发送给他的文件中的图像,
虽然我仍然无法做到这一点
IE 8.我在Firefox 3.6中尝试过
并且图像按预期显示。
问题原本可能是
使用嵌入方法本身(或
相反,我对它的使用),但是使用
Aslak 的 base64 解决方案只会失败
在 Internet Explorer 中工作
浏览器。
Aslak:
我相信图像的 Base64 编码
HTML 页面 [1] 可以正常工作
浏览器(抱歉,IE 不是其中之一)
他们)。然而,它should工作于
IE:http://dean.edwards.name/weblog/2005/06/base64-ie/ http://dean.edwards.name/weblog/2005/06/base64-ie/(但也许他们在 IE8 中破坏了它,或者
也许它只适用于 gif,或者
也许 IE 需要一个special有点儿
base64 编码,或者也许你应该
只是放弃 IE)
如果能够读取黄瓜 html
IE 中带有屏幕截图的报告是
对你来说真的很重要,你可以
始终将每个图像写入磁盘:
png = @browser.driver.screenshot_as(:png)
path = (0..16).to_a.map{|a| rand(16).to_s(16)}.join + '.png' # Or use some GUID library to make a unique filename - scenario names are not guaranteed to be unique.
File.open(path, 'wb') {|io| io.write(png)}
embed(path, 'image/png')
显然你必须确保
您传递给嵌入的相对路径是
正确(取决于你写的地方
html 本身)
[1]
http://en.wikipedia.org/wiki/Data_URI_scheme http://en.wikipedia.org/wiki/Data_URI_scheme
HTH,阿斯拉克
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)