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

Фотография

Проверка на код ответа HTTP 200


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

#1 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 16 сентября 2014 - 12:53

Здравствуйте, помогите, пожалуйста. Только изучаю webdriwer...

Используют WebDriwer, java.

 

Переходя по ссылке открывается страница. Мне надо узнать что она успешно открылась, код ответа не 404, 500 и т.п., а 200.

Как это проверить? Можно ли по заголовку страницы? Или как-то еще можно?

пробую командой 

driver.getTitle (),

 

например, так  

driver.findElement(By.xpath("html/body/header/div[1]/div[1]/a")).click();

driver.getTitle ("Реклама");
 
 

  • 0

"Не сломал - значит, не старался!"


#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 16 сентября 2014 - 12:57

Вы думайте как пользователь, пользователю не нужны никакие коды ответов.

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


  • 2

#3 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 16 сентября 2014 - 13:02

Вы думайте как пользователь, пользователю не нужны никакие коды ответов.

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

Я так и думала сделать, но наши программисты мне сказали, мол это не правильно, мало ли что-то изменится на странице и т.п.

И я подумала, что так не пойдет, так никто не делает и есть другой простой способ)


  • 0

"Не сломал - значит, не старался!"


#4 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 16 сентября 2014 - 13:05

Вы думайте как пользователь, пользователю не нужны никакие коды ответов.

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

спасибо за ответ, так и сделаю..


  • 0

"Не сломал - значит, не старался!"


#5 Freiman

Freiman

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

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

Отправлено 16 сентября 2014 - 14:18

Для данной проверки именно WebDriver не нужен, можно проверить стандартными средствами java, что-то вроде:

URL url = new URL("http://example.com");
HttpURLConnection http = (HttpURLConnection)url.openConnection();
int responseCode = http.getResponseCode();

Не обещаю, что именно этот код заработает, я его не выполнял, но копайте в эту сторону.


  • 1

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 16 сентября 2014 - 15:00

урл и код ответа могут быть корректными, но содержание страницы может быть полным фаршем же.

надо проверять содержание, что присутствуют необходимые элементы для работы.


  • 0

#7 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 17 сентября 2014 - 07:30

урл и код ответа могут быть корректными, но содержание страницы может быть полным фаршем же.

надо проверять содержание, что присутствуют необходимые элементы для работы.

подскажите еще, пожалуйста...мне надо найти ссылку, нажать на нее и на открывшейся странице найти ссылку с названием "Медиа Кит"

что в этом коде не так? без второй строчки все работает...    или нужно локатор указывать? и как можно текст найти на открывшейся странице?

 

 driver.findElement(By.xpath("html/body/header/div[1]/div[1]/a")).click();
 driver.findElement(By.LinkText("Медиа кит"));

  • 0

"Не сломал - значит, не старался!"


#8 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 17 сентября 2014 - 07:51

Вам надо после клика сделать ожидание появления элемента, т.к. вторая ссылка появляется не сразу.

Как ожидать появление элемента (ожидания). Начните с простого - Неявные ожидания.


  • 1

#9 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 17 сентября 2014 - 10:13

Вам надо после клика сделать ожидание появления элемента, т.к. вторая ссылка появляется не сразу.

Как ожидать появление элемента (ожидания). Начните с простого - Неявные ожидания.

я уже делала разные задержки, ожидания..все равно... может библиотека какая-то не подключена или еще что...

Прикрепленные файлы


  • 0

"Не сломал - значит, не старался!"


#10 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 17 сентября 2014 - 10:22

линктекст надо добавит в импорты (альт+энтер).

читайте внимательнее, я предложил вам использовать неявные ожидания, как более простые (замените на это 31 строчку):

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

  • 0

#11 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 17 сентября 2014 - 11:11

 

линктекст надо добавит в импорты (альт+энтер).

читайте внимательнее, я предложил вам использовать неявные ожидания, как более простые (замените на это 31 строчку):

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

спасибо огромное, сделала как вы сказали и все работает))) 


  • 0

"Не сломал - значит, не старался!"


#12 appmen

appmen

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

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

Отправлено 17 сентября 2014 - 12:01

а почему у вас проверка наличия баннера .click();, а не .isDisplayed();?


  • 0

#13 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 17 сентября 2014 - 12:30

Ну, вообще-то, клик - для перехода на другую страницу, где и проверяют то что надо.


  • 1

#14 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 17 сентября 2014 - 13:07

2 vuchenka

первый шаг
https://www.youtube....h?v=aJsrR36toLg
второй шаг
https://www.youtube....h?v=ahhaMbjqrxM


  • 1

#15 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 25 сентября 2014 - 07:46

Здравствуйте, если не сложно, подскажите, пожалуйста, как сравнить количество элементов в определенной области.

На изображении выделен блок, мне надо проверить что в нем 13 элементов.

На форуме нашла ваш ответ на подобный вопрос

driver.findElements(By.cssSelector('table.results form div[id]')).size()

Как я понимаю это только получение количества элементов. А как сравнить с 13?    И что пишется вместо "table.results form div[id]"?

 


 

Прикрепленные файлы

  • Прикрепленный файл  6.png   20,32К   1 Количество загрузок:

  • 0

"Не сломал - значит, не старался!"


#16 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 25 сентября 2014 - 09:35

Смотрите Assert.*

Assert.assertEquals( что , с чем, "Сообщение об ошибке если не совпало"); // для testNG

Вместо  "table.results form div[id]" пишется свой локатор элементов что надо найти и посчитать.


  • 1

#17 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 25 сентября 2014 - 12:07

 

Здравствуйте, если не сложно, подскажите, пожалуйста, как сравнить количество элементов в определенной области.

На изображении выделен блок, мне надо проверить что в нем 13 элементов.

На форуме нашла ваш ответ на подобный вопрос

driver.findElements(By.cssSelector('table.results form div[id]')).size()

Как я понимаю это только получение количества элементов. А как сравнить с 13?    И что пишется вместо "table.results form div[id]"?

driver.findElements(By.cssSelector('table.results form div[id]')).size() возвращает int, то есть число, можно смело сравнивать через !=13.

Что пишется вместо данного кода сказать по картинке трудно, по видимому ссылки в меню "a"


  • 0

#18 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 25 сентября 2014 - 14:15

спасибо большое

как я поняла будет, что-то типо этого

 

Compare=driver.findElements(By.cssSelector(".b-categories.b-categories--hover")).size();
Assert.assertEquals(Compare, 13,"Не 13 элементов");

 

но на вторую строчку выдает ошибку..
     


  • 0

"Не сломал - значит, не старался!"


#19 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 25 сентября 2014 - 15:30

спасибо большое

как я поняла будет, что-то типо этого

 

Compare=driver.findElements(By.cssSelector(".b-categories.b-categories--hover")).size();
Assert.assertEquals(Compare, 13,"Не 13 элементов");

 

но на вторую строчку выдает ошибку..
     

какую ошибку ?

и выведите, чему равно у вас равно compare

System.out.println(compare);


  • 0

#20 vuchenka

vuchenka

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Ирина
  • Город:Минск

Отправлено 26 сентября 2014 - 06:57

 

спасибо большое

как я поняла будет, что-то типо этого

 

Compare=driver.findElements(By.cssSelector(".b-categories.b-categories--hover")).size();
Assert.assertEquals(Compare, 13,"Не 13 элементов");

 

но на вторую строчку выдает ошибку..
     

какую ошибку ?

и выведите, чему равно у вас равно compare

System.out.println(compare);

 

Прикрепленные файлы


  • 0

"Не сломал - значит, не старался!"



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

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