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

Фотография

Динамические объекты


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

#1 psixvoploti

psixvoploti

    Новый участник

  • Members
  • Pip
  • 26 сообщений


Отправлено 19 июля 2013 - 13:27

Есть вот у меня такой код:
driver.findElement(By.id("searchInput")).sendKeys("fr");
int num=driver.findElements(By.xpath("//a[2]/div")).size();
Assert.assertEquals("oshibka",10,num);

Выдает он ошибку понятное дело. Элемент он находит один.
В строке поиска при вводе каких-то букв вылезает 10 слов поиска вроде как динамически.
Все они имеют xpath //a[2]/div, только цифпа меняется от 1 до 10

Как мне находить все такие объекты и проверять что их 10.
Строчка типа int num=driver.findElements(By.xpath("//a[*]/div")).size(); выдает ошибки (((
Подскажите пожалуйста!
  • 0

#2 appmen

appmen

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

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

Отправлено 19 июля 2013 - 13:36

Если у вас от //a[1]/div до //a[10]/div, то driver.findElements(By.xpath("//a/div").size(); должно сработать
  • 0

#3 psixvoploti

psixvoploti

    Новый участник

  • Members
  • Pip
  • 26 сообщений


Отправлено 19 июля 2013 - 13:41

выдает ошибку
oshibka expected:<10> but was:<1>
то есть он все равно находит один элемент

Есть у этого все еще один xpath //html/body/div[6]/div/a[1]/div/span
Только коэффициенты опять же различаются.
Может из этого как-то что-то можно выудить?
  • 0

#4 BabyRoot

BabyRoot

    Специалист

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


Отправлено 19 июля 2013 - 13:59

Сначала давайте разберёмся с проверкой.
Assert.assertEquals("oshibka",10,num);
Правильнее будет так, на мой взгляд:
Assert.assertEquals(num, 10, "oshibka");
И после ввода чего-либо в поисковую строчку, сделайте небольшую задержку.
  • 0

#5 psixvoploti

psixvoploti

    Новый участник

  • Members
  • Pip
  • 26 сообщений


Отправлено 19 июля 2013 - 14:06

Спасибо большое. все получилось!

Теперь снова другая проблема. А как эти значения вывести на экран, так сказать предварительные результаты поиска?
с джавой плохо знакома(
  • 0

#6 BabyRoot

BabyRoot

    Специалист

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


Отправлено 19 июля 2013 - 14:13

Попробуйте так:
driver.findElement(By.id("searchInput")).sendKeys("fr");
// тут строчка с задержкой
List<WebElement> rezults = driver.findElements(By.xpath("//a/div"));
Assert.assertEquals(num, 10, "oshibka");

for (WebElement rezult : rezults) {
   System.out.print(rezult.getText()+"\n");
}

  • 0

#7 Rara

Rara

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


Отправлено 19 июля 2013 - 14:20

Лучше цикл сделать перед assert'ом, иначе до него дело может не дойти.
  • 0
Я бы переписал жизнь, но Бог не дает мне исходники

#8 psixvoploti

psixvoploti

    Новый участник

  • Members
  • Pip
  • 26 сообщений


Отправлено 19 июля 2013 - 14:20

Он постоянно ругается на List
Cann't resolve simbol "List"
Может какую-то библиотеку подключить надо?
  • 0

#9 BabyRoot

BabyRoot

    Специалист

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


Отправлено 19 июля 2013 - 14:24

Он постоянно ругается на List
Может какую-то библиотеку подключить надо?


import java.util.List;
import org.openqa.selenium.WebElement;

У меня в IDE, где пишется код, по Альт+Энтер всплывают подсказки на том месте где ошибка или красное, в большинстве случаев полезны.
Учитесь читать подсказки.
  • 0

#10 psixvoploti

psixvoploti

    Новый участник

  • Members
  • Pip
  • 26 сообщений


Отправлено 19 июля 2013 - 14:32

спасибо большое!
  • 0


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

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