Как создать отчет для конкретного тега / атрибута XHTML? - PullRequest
0 голосов
/ 03 апреля 2010

Я хочу проверить <img> изображения всего сайта для alt текста. Я хочу получить отчет о том, что написано в alt тексте или alt определяется или не из всех изображений, используемых на всем сайте на каждой странице.

Можно ли получить такой отчет? после получения отчета я поставлю alt или, если alt уже добавлено, но пусто, то напишу текст описания.

В противном случае на большом сайте потребуется огромное время, чтобы зайти и проверить каждую страницу.

Сайт находится в Интранете и доступен с именем пользователя и паролем.

Ответы [ 3 ]

0 голосов
/ 05 апреля 2010

Если вы захотите сделать это с 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);
}

Это напечатает источник изображения и его текст ALT.

0 голосов
/ 23 апреля 2010

Использование TestPlan Я придумал этот быстрый скрипт:

GotoURL /2042318/kak-sozdat-otchet-dlya-konkretnogo-tega-atributa-xhtml

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.

0 голосов
/ 04 апреля 2010

Это не прямой ответ, но поскольку кажется, что ваша мотивация заключается в том, чтобы просто знать, какие img элементы не имеют атрибутов alt, я хотел бы добавить, что не all img элементам нужны атрибуты alt.

В спецификации HTML5 указано, какие img элементы должны иметь атрибуты alt:

То, что представляет элемент img, зависит от атрибута src и атрибута alt.

Если атрибут src установлен, а атрибут alt установлен в пустую строку

  • Изображение является либо декоративным, либо дополнением к остальному содержимому, избыточно с некоторой другой информацией в документе.
  • Если изображение доступно, и пользовательский агент настроен на отображение этого изображения, тогда элемент представляет изображение, указанное атрибутом src.
  • В противном случае элемент ничего не представляет и может быть полностью исключен из рендеринга. Пользовательские агенты могут предоставлять пользователю уведомление о том, что изображение присутствует, но было опущено при визуализации.

Если атрибут src установлен, а атрибут alt имеет значение, которое не пусто

  • Изображение является ключевой частью контента; атрибут alt дает текстовый эквивалент или замену изображения.
  • Если изображение доступно, и пользовательский агент настроен на отображение этого изображения, тогда элемент представляет изображение, указанное атрибутом src.
  • В противном случае элемент представляет собой текст, заданный атрибутом alt. Пользовательские агенты могут предоставлять пользователю уведомление о том, что изображение присутствует, но было опущено при рендеринге.

Если установлен атрибут src, а атрибут alt не

  • Изображение может быть ключевой частью содержимого, и текстового эквивалента изображения не существует.
  • Примечание. В соответствующем документе отсутствие атрибута alt указывает на то, что изображение является ключевой частью содержимого, но текстовая замена изображения была недоступна при создании изображения.
  • Если изображение доступно, элемент представляет изображение, указанное атрибутом src.

Если атрибут src не установлен и либо атрибут alt установлен на пустую строку, либо атрибут alt вообще не установлен

  • Элемент ничего не представляет.

В противном случае

  • Элемент представляет текст, заданный атрибутом alt.
* * 1068
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...