Как я могу проверить все ссылки на странице в качестве тестера черного ящика
Я пытаюсь проверить , все ли ссылки на мои страницы действительны, а также что-то похожее на меня, если на всех страницах есть указанная ссылка, например контакт. Я использую модульное тестирование Python и селен IDE для записи действий, которые должны быть проверены. Итак, мой вопрос: могу ли я проверить ссылки в цикле, или мне нужно попробовать каждую ссылку самостоятельно? я пытался сделать это с __iter__
но это не подходило близко, может быть причина, по которой я плохо справляюсь, но я все еще думаю, что должен быть другой способ проверить ссылки, чем щелкать их и записывать по одной.
4 ответа
Я бы просто использовал стандартные команды оболочки для этого:
- Вы можете использовать wget для обнаружения неработающих ссылок
- Если вы используете wget для загрузки страниц, вы можете сканировать полученные файлы с помощью
grep --files-without-match
найти тех, у кого нет контактной ссылки.
Если у вас 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.