如何使用Selenium IDE测试损坏的图像?

时间:2016-04-13 02:09:11

标签: javascript selenium automated-tests selenium-ide

我在这个site中看到一个例子,可以使用javascript测试损坏的图像,但提供的示例是用Ruby语言编写的。 我想我可以在Selenium IDE中使用runScript命令并制作一个可以检测破碎图像的JavaScript代码,尽管我不知道如何。

有人可以提供代码来执行此操作吗?任何形式的帮助将不胜感激。

1 个答案:

答案 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
祝你好运!