Перейти к содержимому

Фотография

Как проверить статус возвращаемой страницы


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 03 октября 2012 - 07:46

Здравствуйте!
Возник такой вопрос. Возможно ли как то получить статус открывшейся страницы используя Selenium WebDriver ?
Проблема в том что при переходе по ссылке пользователю открывается верный URL, но страница возвращает 404... В итоге получается что при клике на ссылку открылась верная страница(соответствует url), но ссылка считается битой.

Как можно получить именно код (200,404,403) ?

Использую Selenium WebDriver
Язык c#
версия 2.21
  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 03 октября 2012 - 08:54

Тут можно(нужно) обойтись без веб-драйвера.
Я делал проверку доступности на Python

А вам должно помочь вот это: http://msdn.microsof...statuscode.aspx
или этот ответ: http://stackoverflow...stions/1330856/
  • 0

#3 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 03 октября 2012 - 10:26

Тут можно(нужно) обойтись без веб-драйвера.
Я делал проверку доступности на Python

А вам должно помочь вот это: http://msdn.microsof...statuscode.aspx
или этот ответ: http://stackoverflow...stions/1330856/

Спасибо! Я как раз начал копать в этом направлении... правда столкнулся с проблемой прокси : "Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника."
var request = (HttpWebRequest)WebRequest.Create(url);
 request.Proxy.Credentials = CredentialCache.DefaultCredentials;
пробовал использовать такую конструкцию...но к сожалению не помогло.
  • 0

#4 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 03 октября 2012 - 11:32

можно самому написать кусок кода с опросом страницы и подключить как внешнюю библиотеку. На этом форуме нашёл для Джавы http://ardesco.lazer...y-you-shouldnt/
то, что тут описывают можно подстроить под ваши нужды. Если разбираетесь в программировании - можно попробовать
  • 0

#5 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 03 октября 2012 - 12:15

Проблему решил следующим образом:
var request = (HttpWebRequest)WebRequest.Create(url);
           request.Proxy.Credentials = CredentialCache.DefaultCredentials;
            try
            {
                using ((HttpWebResponse)request.GetResponse())
                {
                    pageLog.message("Рабочая ссылка: " + url);
                }
            }
            catch (WebException e)
            {
                HttpWebResponse response = (HttpWebResponse)e.Response;
                switch (response.StatusCode)
                {
                    case HttpStatusCode.NotFound: pageLog.warning("Не рабочая ссылка(запрашиваемый ресурс не существует на сервере): " + url); break;
                    case HttpStatusCode.Forbidden: pageLog.warning("Не рабочая ссылка(нет доступа): " + url); break;
                    default: pageLog.warning("Не рабочая ссылка: " + url); break;
                }
            }

  • 0

#6 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 04 октября 2012 - 06:36

К сожалению такой вариант, который я указал спасает не всегда...
Попробовал указывать прокси на прямую(домен, логин, пароль). В итоге ничего не получается всё равно вылетает ошибка.
Хотя если послать этот запрос используя Jmeter(c указанием домен, логин, пароль) все проходит отлично. Кто нибудь может подсказать как это исправить ?
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных