Как я могу проверить все ссылки на странице в качестве тестера черного ящика

Я пытаюсь проверить , все ли ссылки на мои страницы действительны, а также что-то похожее на меня, если на всех страницах есть указанная ссылка, например контакт. Я использую модульное тестирование Python и селен IDE для записи действий, которые должны быть проверены. Итак, мой вопрос: могу ли я проверить ссылки в цикле, или мне нужно попробовать каждую ссылку самостоятельно? я пытался сделать это с __iter__ но это не подходило близко, может быть причина, по которой я плохо справляюсь, но я все еще думаю, что должен быть другой способ проверить ссылки, чем щелкать их и записывать по одной.

4 ответа

Решение

Я бы просто использовал стандартные команды оболочки для этого:

Если у вас Windows, вы можете установить Cygwin или установить порты Win32 этих инструментов.

РЕДАКТИРОВАТЬ: Вставить информацию из use wget to detect broken links ссылка выше:

Когда мы выпускаем публичный сайт, всегда полезно запустить на нем паука, таким образом мы можем проверять наличие битых страниц и плохих URL. WGET имеет команду рекурсивной загрузки и в сочетании с опцией --spider просто сканирует сайт.

1) Download WGET

    Mac:
    http://www.statusq.org/archives/2008/07/30/1954/
    Or use macports and download wget.

    Windows:
    http://gnuwin32.sourceforge.net/packages/wget.htm

    Linux:
    Comes built in
    ----------------------------------------

2) In your console / terminal, run (without the $):

    $ wget --spider -r -o log.txt http://yourdomain.com

3) After that just locate you "log.txt" file and at the very bottom
 of the file will be a list of broken links, how many links there 
are, etc.

Хотя инструмент на Perl, вы проверили linklint? Это инструмент, который должен точно соответствовать вашим потребностям. Он будет анализировать ссылки в HTML-документе и сообщит вам, когда они не работают.

Если вы пытаетесь автоматизировать это с помощью скрипта Python, вам нужно запустить его как подпроцесс и получить результаты, но я думаю, что это даст вам то, что вы ищете.

Вы можете (в качестве еще одной альтернативы) использовать BeautifulSoup для анализа ссылок на своей странице и попытаться получить их через urllib2.

Что именно такое "Тестирование ссылок"?

Если это означает, что они приводят к URI, отличным от 4xx, я боюсь, что вы должны посетить их.

Что касается существования данных ссылок (например, "Контакт"), вы можете искать их, используя xpath.

Другие вопросы по тегам