Проверьте действительные ссылки, если мертвый URL-адрес перенаправляет на страницу ошибки костюма.

Мне нужно проверить (Selenium), действительны ли ссылки на данной странице или нет. Я нашел хороший пост об этом здесь

http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/

Но проблема в том, что если страница с ошибкой перенаправляет на пользовательскую страницу с ошибкой? Тогда я получу 200 или 302 вместо 404. Как мне проверить действительность URL-адресов для веб-страниц, которые перенаправляют их 404.


person Aakash Sigdel    schedule 21.07.2014    source источник
comment
Затем вы должны проверить элементы пользовательской ошибки. Если они существуют, то вы находитесь на пользовательской странице ошибок.   -  person Nguyen Vu Hoang    schedule 21.07.2014
comment
Заголовок страницы или элемент должны быть хорошими кандидатами для проверки этого сценария.   -  person Vinay    schedule 21.07.2014
comment
Я бы не согласился с использованием элемента browser.title — он работает и прост, но если ваша команда по контенту или поисковая оптимизация решит, что заголовки страниц не являются дружественными или не соответствуют бренду, и изменит их без предупреждения, это нарушит ваши тесты. и это всегда будет происходить за час до демонстрации спринта. Это случилось со мной. Вместо этого используйте элемент страницы.   -  person Rogue_Leader    schedule 21.07.2014
comment
Это все хорошо, но что, если перенаправление на домашнюю страницу или что-то еще?   -  person Aakash Sigdel    schedule 22.07.2014


Ответы (1)


Вы должны использовать утверждение элемента на странице с известным конкретным тестом. Используйте для этого специальную многоразовую функцию.

Затем, когда вы нажмете на страницу, вызовите функцию как проверку. Если вы обнаружите, что определенный элемент присутствует, нажмите кнопку «Назад» в браузере после записи URL-адреса. Если нет, вы можете продолжить свой тест по желанию. Есть еще один пост о рекурсивном поиске всех ссылок и их тестировании. Как просмотреть весь веб-сайт с помощью селена?

    if (checkError()) //calls specific check for the error on the custom error page
    {
      //Log URL
      string badURL = driver.Url();
      //Save somewhere in a list for output later...

      //navigate to previous page
      driver.navigate().Back();
    }
person mutt    schedule 21.07.2014
comment
Как я сказал в комментарии выше, что, если неработающая ссылка перенаправляется на домашнюю страницу или какие-то другие страницы. Я видел, как некоторые веб-сайты делают это. - person Aakash Sigdel; 22.07.2014
comment
Для правильного тестирования должны быть некоторые известные состояния. У вас должна быть хотя бы часть URL-адреса, который, как вы знаете, должен быть там, на котором вы можете выполнить проверку содержания текста. Если это действительно то же самое, проверьте содержимое страницы на предмет того, что, как вы знаете, должно быть на этой странице. - person mutt; 23.07.2014