我对登录页面进行了基于量角器的简短测试。我想测试“横幅”图像至少是合理的正确(例如,它不是一个断开的链接)。根据类似问题(How to validate if the image is display in the table using webdriver),我检查了naturalWidth
元素的img
属性。
虽然这种方法似乎有效(如果加载图像时出现naturalWidth
为0,但正常情况下非零),并且使用PNG图像,并且在带有SVG图像的Chrome中正常工作,在Firefox中对于我的任何.svg图像,naturalWidth
元素的img
属性始终为零。是否有其他方法以编程方式确定图像是否正确/完全加载?
这是HTML的样子:
<img src="/static/img/logo.svg" style="width:300px">
以下是Firefox中关于img的JavaScript控制台的说法:
a[0].src
"http://localhost:1080/static/img/logo.svg"
a[0].naturalWidth
0
a[0].width
300
可悲的是,如果我断开链接,可以将HTML更改为:
<img src="/static/img/INVALID.svg" style="width:300px">
我在JavaScript控制台上得到完全相同的结果。
答案 0 :(得分:1)
我们的Webdriver代码是用Java编写的,我们设置了一个单独的实用程序类(使用HttpURLConnection)来从http请求中获取状态代码。我想知道你是否可以使用the answer to this question
中显示的方法在.js中做类似的事情答案 1 :(得分:1)
等待onload或onerror事件触发。如果onload触发,那么图像就会加载,你可以运行你的测试,如果onerror触发它就无法加载。
这是一个错误的例子。
<img src="http://localhost/serverGone.gif" onerror="alert('serverGone')">
&#13;
使用警报就是一个例子,你可以做任何你想做的事情,你可以使用setAttribute或addEventListener动态添加它们