【问题标题】:How can I test broken images using Selenium IDE?如何使用 Selenium IDE 测试损坏的图像?
【发布时间】:2016-04-13 02:09:11
【问题描述】:

我在site 中看到了一个示例,它可以使用 javascript 测试损坏的图像,但提供的示例是 Ruby 语言的。 我在想我可以在 Selenium IDE 中使用 runScriptcommand 并制作一个 javascript 代码来检测损坏的图像,尽管我不知道如何。

有人可以提供一个代码来做到这一点吗?任何形式的帮助将不胜感激。

【问题讨论】:

    标签: javascript selenium automated-tests selenium-ide


    【解决方案1】:

    这不是通常的事情,但有可能。

    看看这个:

    您可以使用 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
    

    祝你好运!

    【讨论】:

    • 谢谢!这几乎回答了我的问题。
    • 有没有可能把它变成一个用户扩展js?如果是这样,我该怎么做?
    • 这是肯定的。但这是另一个问题:)。看看这里codediesel.com/testing/…
    • 或单个元素: verifyEval imgElement = window.document.getElementById('my_id'); imgElement.complete && imgElement.naturalHeight != 0 x 您可以在其中使用任何方法来检索元素(例如 getElementByXpath 而不是 getElementById)。
    猜你喜欢
    • 2017-02-09
    • 2011-10-29
    • 1970-01-01
    • 2012-04-13
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    相关资源
    最近更新 更多