我在这个site中看到一个例子,可以使用javascript测试损坏的图像,但提供的示例是用Ruby语言编写的。
我想我可以在Selenium IDE中使用runScript
命令并制作一个可以检测破碎图像的JavaScript代码,尽管我不知道如何。
有人可以提供代码来执行此操作吗?任何形式的帮助将不胜感激。
答案 0 :(得分:2)
这不是通常的事情,但它是可能的。
检查出来:
您可以使用 verifyEval 命令验证javascript代码的结果。您还可以使用 storeEval 来执行一些JavaScript并检索结果并在以后使用它。如果你只想做javascript,你也可以做 getEval 。
因此,如果您希望在页面上至少有一个损坏的图像失败,请执行以下操作:
<强>命令强>
verifyEval
:定位强>
var allImg=window.document.getElementsByTagName("img"), i=0, img, result=true;
while (img = allImg[i++])
{if (img.complete && typeof img.naturalWidth != "undefined" && img.naturalWidth > 0)
{}
else
{result=false;}};
result;
<强>值强>
true
或者您可以例如标记所有损坏的\普通图像来计算它们。如果页面上超过5%的图像被破坏,则此示例将失败
<强>命令强>
getEval
:定位强>
var allImg=window.document.getElementsByTagName("img"), i=0, img;
while (img = allImg[i++])
{if (img.complete && typeof img.naturalWidth != "undefined" && img.naturalWidth > 0)
{img.setAttribute('tag','passed');}
else
{img.setAttribute('tag','broken');}};
然后:
storeXpathCount | //img | all
storeXpathCount | //img[@tag='broken'] | broken
verifyEval | storedVars['broken']*100/storedVars['all']>5 | true
祝你好运!