如何验证在 Firefox 中正确加载的 SVG img(在 webdriver 测试中)
How to verify an SVG img loaded properly in Firefox (in a webdriver test)
我对登录页面进行了基于量角器的简短测试。我想测试 'banner' 图像是否至少合理正确(例如,它不是损坏的 link)。在类似的问题 (How to validate if the image is display in the table using webdriver) 之后,我检查了 img
元素的 naturalWidth
属性。
虽然这种方法似乎对 PNG 图像有效(如果加载图像时出错,naturalWidth
为 0,但通常不为零),并且在 Chrome 中工作正常SVG 图像,在 Firefox 中,img
元素的 naturalWidth
属性 对于我的任何 .svg 图像始终为零。是否有其他方法以编程方式确定图像是否已加载 correctly/completely?
这是 HTML 的样子:
<img src="/static/img/logo.svg" style="width:300px">
下面是 Firefox 中的 JavaScript 控制台对 img 的描述:
a[0].src
"http://localhost:1080/static/img/logo.svg"
a[0].naturalWidth
0
a[0].width
300
遗憾的是,如果我通过将 HTML 更改为:
来破坏 link
<img src="/static/img/INVALID.svg" style="width:300px">
我在 JavaScript 控制台得到了完全相同的结果。
我们的 Webdriver 代码在 Java 中,我们设置了一个单独的实用程序 class(使用 HttpURLConnection) to get us the status codes from the http request. I wonder if you could do something similar in .js using something like the approach shown in the answer to this question
等待 onload 或 onerror 事件触发。如果 onload 触发然后图像被加载并且你可以 运行 你的测试,如果 onerror 触发它加载失败。
这是一个错误示例。
<img src="http://localhost/serverGone.gif" onerror="alert('serverGone')">
以alert的使用为例,大家可以随意添加,也可以使用setAttribute or addEventListener
动态添加
我对登录页面进行了基于量角器的简短测试。我想测试 'banner' 图像是否至少合理正确(例如,它不是损坏的 link)。在类似的问题 (How to validate if the image is display in the table using webdriver) 之后,我检查了 img
元素的 naturalWidth
属性。
虽然这种方法似乎对 PNG 图像有效(如果加载图像时出错,naturalWidth
为 0,但通常不为零),并且在 Chrome 中工作正常SVG 图像,在 Firefox 中,img
元素的 naturalWidth
属性 对于我的任何 .svg 图像始终为零。是否有其他方法以编程方式确定图像是否已加载 correctly/completely?
这是 HTML 的样子:
<img src="/static/img/logo.svg" style="width:300px">
下面是 Firefox 中的 JavaScript 控制台对 img 的描述:
a[0].src
"http://localhost:1080/static/img/logo.svg"
a[0].naturalWidth
0
a[0].width
300
遗憾的是,如果我通过将 HTML 更改为:
来破坏 link<img src="/static/img/INVALID.svg" style="width:300px">
我在 JavaScript 控制台得到了完全相同的结果。
我们的 Webdriver 代码在 Java 中,我们设置了一个单独的实用程序 class(使用 HttpURLConnection) to get us the status codes from the http request. I wonder if you could do something similar in .js using something like the approach shown in the answer to this question
等待 onload 或 onerror 事件触发。如果 onload 触发然后图像被加载并且你可以 运行 你的测试,如果 onerror 触发它加载失败。
这是一个错误示例。
<img src="http://localhost/serverGone.gif" onerror="alert('serverGone')">
以alert的使用为例,大家可以随意添加,也可以使用setAttribute or addEventListener
动态添加