【问题标题】:How to generate a report for particular XHTML tag/attributes?如何为特定的 XHTML 标记/属性生成报告?
【发布时间】:2011-02-03 22:52:35
【问题描述】:

我想检查整个网站的<img> 图像中的alt 文本。我想得到一份报告,alt 文本或 alt 中写的内容是从每个页面的整个网站上使用的所有图像中定义或未定义的。

有可能得到这样的报告吗?收到报告后我会输入alt 或者如果alt 已经添加但为空白,则将写描述文本。

否则在大型网站中,检查每个页面将花费大量时间。

网站位于 Intranet 上,可通过用户名和密码访问。

【问题讨论】:

    标签: testing xhtml selenium accessibility automated-tests


    【解决方案1】:

    这不是一个直接的答案,但由于您的动机似乎只是想知道哪些 img 元素没有 alt 属性,所以我想补充一点,而不是 all @ 987654323@ 元素需要 alt 属性。

    HTML5 spec 提到了哪些img 元素应该具有 alt 属性:

    img 元素代表什么取决于 src 属性和 alt 属性。

    如果设置了src属性并且alt属性设置为空字符串

    • 图片可以是装饰性的,也可以是对其余内容的补充,与文档中的其他一些信息是多余的。
    • 如果图像可用并且用户代理配置为显示该图像,则该元素表示由 src 属性指定的图像。
    • 否则,该元素不代表任何内容,并且可以从渲染中完全省略。用户代理可以向用户提供图像存在但已从渲染中省略的通知。

    如果设置了 src 属性并且 alt 属性设置为非空值

    • 图片是内容的关键部分; alt 属性为图像提供文本等价物或替代品。
    • 如果图像可用并且用户代理配置为显示该图像,则该元素表示由 src 属性指定的图像。
    • 否则,该元素表示由 alt 属性给出的文本。用户代理可以向用户提供图像存在但已从渲染中省略的通知。

    如果设置了src属性而没有设置alt属性

    • 图片可能是内容的关键部分,并且没有可用的图片文本等价物。
    • 注意:在符合标准的文档中,缺少 alt 属性表示图像是内容的关键部分,但在生成图像时无法对图像进行文本替换。
    • 如果图像可用,则该元素表示由 src 属性指定的图像。

    如果 src 属性没有设置,或者 alt 属性设置为空字符串,或者根本没有设置 alt 属性

    • 元素代表什么。

    否则

    • 该元素表示由 alt 属性给出的文本。

    【讨论】:

      【解决方案2】:

      如果你想用 Selenium 来做这件事,它会是这样的

      Dictionary<string,string> details = new Dictionary<string,string>();
      int imgcount = selenium.GetXpathCount("//img");
      for (i=0;i<10;i++){
        details.add(selenium.GetAttribute("//img[i]@src"),selenium.GetAttribute("//img[i]@alt"));
      }
      
      foreach (KeyValuePair<string, string> kvp in details)
      {
         Console.WriteLine("key " + kvp.Key);
         Console.WriteLine("Value " + kvp.Value);
      }
      

      这将打印图像的 src 及其 ALT 文本。

      【讨论】:

      • 感谢回答。如何在 Firefox 中使用 Selenium 在整个站点上运行此脚本?
      【解决方案3】:

      使用TestPlan 我想出了这个快速脚本:

      GotoURL http://stackoverflow.com/questions/2570421/how-to-generate-a-report-for-particular-xhtml-tag-attributes
      
      foreach %Image% in (response //img)
          set %src% as combineCurrentURL (selectIn %Image% @src)
          set %alt% as trim (selectIn %Image% @alt)
      
          if numComp 0 = (length %alt%)
              Notice %src% ALT IS EMPTY
          else
              Notice %src% : %alt%
          end
      end
      

      输出如下所示(如果需要,也可以生成 CSV 报告)

      00000001-00 NOTICE http://sstatic.net/so/img/logo.png : Stack Overflow
      00000002-00 NOTICE http://ads.stackoverflow.com/ads/ladywhobig.jpg ALT IS EMPTY
      00000003-00 NOTICE http://sstatic.net/so/img/vote-arrow-up.png : vote up
      00000004-00 NOTICE http://sstatic.net/so/img/vote-arrow-down.png : vote down
      

      这适用于 TestPlan 的 HTMLUnit 和 Selenium 后端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-24
        • 2019-08-06
        • 1970-01-01
        • 2021-09-10
        • 2010-09-19
        • 2011-05-12
        • 1970-01-01
        • 2019-08-21
        相关资源
        最近更新 更多