2010-04-03 47 views
0

我想检查整个网站的<img>图片的alt文本。我想要得到一份报告,在alt文本或alt中编写的内容是否来自每个页面中整个站点上使用的所有图像。如何为特定的XHTML标记/属性生成报告?

是否有可能得到这样的报告?获取报告后,我会把alt或如果alt已经添加,但空白,然后将写描述文本。

否则,在一个大的网站,它将需要大量的时间去检查每一页。

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

回答

0

这不是一个直接的答案,但因为它似乎是你的动机这里只是知道哪些img元素没有ALT属性,我想补充一点,并不是所有img元素需要ALT属性。

HTML5 spec提到其中img元件应具有ALT属性:

什么img元素表示依赖于src属性和alt属性。

如果src属性设置和alt属性被设置为空字符串

  • 的图像或者是装饰性或补充,所述内容的其余部分,冗余在某些其它信息该文件。
  • 如果图像可用并且用户代理配置为显示该图像,则该元素表示由src属性指定的图像。
  • 否则,该元素不表示任何内容,并且可能从渲染中完全省略。用户代理可以向用户提供图像存在但在渲染中被忽略的通知。

如果src属性设置和alt属性被设置为不为空

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

如果src属性设置和alt属性不是

  • 的图像可能是内容的一个重要组成部分,并没有文字等效可用的图像。
  • 注意:在符合性文档中,缺少alt属性表示图像是内容的关键部分,但生成图像时文本替换图像不可用。
  • 如果图像可用,则该元素表示由src属性指定的图像。

如果未设置src属性,要么alt属性设置为空字符串或者alt属性没有被设置在所有

  • 的元素代表什么。

否则

  • 的元素表示通过alt属性中的文字。
0

如果你想做到这一点硒它会是这样的

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文本。

+0

thnaks for answer。如何使用Firefox中的Selenium在整个站点上运行此脚本? – 2010-04-05 03:16:26

0

使用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 

这个工作在两个化的HtmlUnit和Selenium后端到TestPlan。