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

Javascript 如何使用Selenium IDE测试损坏的图像?,javascript,selenium,automated-tests,selenium-ide,Javascript,Selenium,Automated Tests,Selenium Ide,我在这里看到了一个示例,可以使用javascript测试损坏的图像,但提供的示例是Ruby语言。 我想我可以在Selenium IDE中使用runScript命令,编写一个javascript代码来检测损坏的图像,尽管我不知道如何做 有人能提供一个代码来做这件事吗?任何形式的帮助都将不胜感激 这不是一件平常的事,但这是可能的 看看这个: 您可以使用verifyEval命令来验证javascript代码的结果。您还可以使用storeEval执行一些javascript,检索结果并在以后使用。如果只

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


有人能提供一个代码来做这件事吗?任何形式的帮助都将不胜感激

这不是一件平常的事,但这是可能的

看看这个:

您可以使用verifyEval命令来验证javascript代码的结果。您还可以使用storeEval执行一些javascript,检索结果并在以后使用。如果只想使用javascript,也可以使用getEval

因此,如果您希望在页面上至少有一个损坏的图像时失败,请执行以下操作:

命令

verifyEval
getEval
目标

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;
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');}}; 

true
或者,您可以标记所有损坏的\正常图像以对其进行计数。下面是一个例子,如果页面上超过5%的图像被破坏,该示例将失败

命令

verifyEval
getEval
目标

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;
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

祝你好运

这不是一件平常的事,但这是可能的

看看这个:

您可以使用verifyEval命令来验证javascript代码的结果。您还可以使用storeEval执行一些javascript,检索结果并在以后使用。如果只想使用javascript,也可以使用getEval

因此,如果您希望在页面上至少有一个损坏的图像时失败,请执行以下操作:

命令

verifyEval
getEval
目标

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;
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');}}; 

true
或者,您可以标记所有损坏的\正常图像以对其进行计数。下面是一个例子,如果页面上超过5%的图像被破坏,该示例将失败

命令

verifyEval
getEval
目标

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;
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

祝你好运

谢谢!这基本上回答了我的问题。有可能把它变成一个用户扩展js吗?如果是这样的话,我会怎么做?这是肯定的。但这是另一个问题:)。看看这里或单个元素:verifyEval imgElement=window.document.getElementById('my_id');imgElement.complete&&;imgElement.naturalHeight!=0 x,您可以使用任何方法检索元素(如getElementByXpath而不是getElementById)。谢谢!这基本上回答了我的问题。有可能把它变成一个用户扩展js吗?如果是这样的话,我会怎么做?这是肯定的。但这是另一个问题:)。看看这里或单个元素:verifyEval imgElement=window.document.getElementById('my_id');imgElement.complete&&;imgElement.naturalHeight!=0 x,您可以使用任何方法检索元素(如getElementByXpath而不是getElementById)。