Динамические объекты
Автор psixvoploti, 19 июл 2013 13:27
Сообщений в теме: 9
#1
Отправлено 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(); выдает ошибки (((
Подскажите пожалуйста!
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(); выдает ошибки (((
Подскажите пожалуйста!
#2
Отправлено 19 июля 2013 - 13:36
Если у вас от //a[1]/div до //a[10]/div, то driver.findElements(By.xpath("//a/div").size(); должно сработать
#3
Отправлено 19 июля 2013 - 13:41
выдает ошибку
oshibka expected:<10> but was:<1>
то есть он все равно находит один элемент
Есть у этого все еще один xpath //html/body/div[6]/div/a[1]/div/span
Только коэффициенты опять же различаются.
Может из этого как-то что-то можно выудить?
oshibka expected:<10> but was:<1>
то есть он все равно находит один элемент
Есть у этого все еще один xpath //html/body/div[6]/div/a[1]/div/span
Только коэффициенты опять же различаются.
Может из этого как-то что-то можно выудить?
#4
Отправлено 19 июля 2013 - 13:59
Сначала давайте разберёмся с проверкой.
Assert.assertEquals(num, 10, "oshibka");
И после ввода чего-либо в поисковую строчку, сделайте небольшую задержку.
Assert.assertEquals("oshibka",10,num);Правильнее будет так, на мой взгляд:
Assert.assertEquals(num, 10, "oshibka");
И после ввода чего-либо в поисковую строчку, сделайте небольшую задержку.
#5
Отправлено 19 июля 2013 - 14:06
Спасибо большое. все получилось!
Теперь снова другая проблема. А как эти значения вывести на экран, так сказать предварительные результаты поиска?
с джавой плохо знакома(
Теперь снова другая проблема. А как эти значения вывести на экран, так сказать предварительные результаты поиска?
с джавой плохо знакома(
#6
Отправлено 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"); }
#7
Отправлено 19 июля 2013 - 14:20
Лучше цикл сделать перед assert'ом, иначе до него дело может не дойти.
Я бы переписал жизнь, но Бог не дает мне исходники
#8
Отправлено 19 июля 2013 - 14:20
Он постоянно ругается на List
Cann't resolve simbol "List"
Может какую-то библиотеку подключить надо?
Cann't resolve simbol "List"
Может какую-то библиотеку подключить надо?
#9
Отправлено 19 июля 2013 - 14:24
Он постоянно ругается на List
Может какую-то библиотеку подключить надо?
import java.util.List; import org.openqa.selenium.WebElement;
У меня в IDE, где пишется код, по Альт+Энтер всплывают подсказки на том месте где ошибка или красное, в большинстве случаев полезны.
Учитесь читать подсказки.
#10
Отправлено 19 июля 2013 - 14:32
спасибо большое!
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных