【问题标题】:Watir-webdriver screenshot write to html fileWatir-webdriver 截图写入 html 文件
【发布时间】:2013-06-03 19:42:15
【问题描述】:

我创建了一个获取屏幕截图然后写入 html 文件的方法,将该屏幕截图插入到表格中。

当我使用 Watir 时,它运行良好(仅真正使用过 IE 浏览器)。

现在我正在使用 Watir-Webdriver,它会截取屏幕截图(在 Firefox 上)并很好地保存它们。但是,当我将它们写入 html 文件时,它们只会在我的 html 页面上显示为小撕纸图标。

这是我的方法:

def LogCapture(testID, passFail)

@passFail = passFail
@testID = testID
@time = Time.now.strftime("%m.%d.%Y %H.%M.%S")
@shotLoc = $FolderPath + "\\" + @passFail + @time + ".png"
$browser.screenshot.save @shotLoc

$fileHtml.puts"<TR><TD><@testID + " " + @passFail + " " + @time + "></TD></TR>"
$fileHtml.puts"<TR><TD><img src='" + @shotLoc + "'></TD></TR>" 
$log.info(@passFail)

end

我知道 Watir-Webdriver 屏幕截图会捕获页面的整个长度,这与 Watir 不同,但我不知道为什么屏幕截图无法显示在我的 html 文件/页面上。

谢谢大家

*解决方案:在写入 html 文件时让它同时显示在 FF 和 IE 中,我只需要包含: “文件:\\本地主机\” 在我的文件路径之前。

谢谢贾斯汀!去枫叶吧!

【问题讨论】:

  • 我假设“小撕纸图标”表示 html 文件没有找到所需的图像。您是否验证了 fileHtml 输出中的 html 是正确的,并且图像存在于它应该存在的位置?
  • 这也是我的假设,但我检查过,它在输出中确实有正确的路径。
  • 我相信firefox,你需要在src中的文件路径前加上“file:///”。例如“file:///C:/folder/image.jpg”。但后来我认为它只适用于 Firefox 而不是 IE。我想您需要选择一个浏览器来查看报告。
  • 你也可以使用相对uri。 (而且我认为这更好:您将能够将带有图片的整个报告发送给某人以展示它)
  • 如果您的 html 文件位于 C:\Users\jetthehawk\Documents\WatirTests\Report => 您应该使用 ..\PostMigrationTests\ScreenLogs\PASSED。登录.06.07.2013 13.14.03.png

标签: screenshot watir watir-webdriver


【解决方案1】:

我更喜欢以 base64 格式保存屏幕截图,而不是保存为 PNG 文件,因为它可以解决所有路径问题并且易于保存历史记录:

screenshot = $browser.screenshot.base64
$fileHtml.puts "<img src='data:image/png;base64,#{screenshot}'>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多