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

Фотография

Проверка появляющихся значений при вводе поискового запроса


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

#1 Mihail

Mihail

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

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

Отправлено 11 июля 2013 - 07:30

Добрый день.
Подскажите пожалуйста каким набором команд можно добиться появления предварительных результатов при вводе поискового запроса в строку поиска и соответственно сделать clickAndWait или verifyText.
(Я не в коем случае не хочу проводить рекламу какого либо портала, в частности где нужно проверить данный механизм)
На главной странице портала твзавр.ру (набирать латинецей) в шапке с правой стороны, нужно реализовать данную проверку.
  • 0

#2 Alexdevid

Alexdevid

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

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Alexander Devid

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

---

Сообщение отредактировал Alexdevid: 11 июля 2013 - 07:33

  • 0

#3 Petrov.Sergey

Petrov.Sergey

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

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 11 июля 2013 - 10:40

Добрый день.
Подскажите пожалуйста каким набором команд можно добиться появления предварительных результатов при вводе поискового запроса в строку поиска и соответственно сделать clickAndWait или verifyText.
(Я не в коем случае не хочу проводить рекламу какого либо портала, в частности где нужно проверить данный механизм)
На главной странице портала твзавр.ру (набирать латинецей) в шапке с правой стороны, нужно реализовать данную проверку.


Результаты поиска, точнее подсказки находятся по следующему пути xpath:
/body/div[@class='a1']/div[@class='sq_preview']

Есть проблема: пока попапчик хоть один раз не появится на странице, тэг будет отсутствовать.
Если хоть один раз попапчик появился, всё - тэг есть всегда. Скрытие происходит по стилю "display: none;"

Если смотреть через Selenium WebDriver (JAVA), то я бы сделал так:
WebElement searchBlock = driver.findElement(By.className("a1")); // блок, в котором попапчик появляется

List<String> classNamesList = new ArrayList<String>(); // список классов в блоке.
int count = 0; // счётчик
while (!classNamesList.contains("sq_preview") || count < 5) { // пока список классов не содержит нужный нам класс или не прошло 5 секунд
	classNamesList.clear(); // очищаем предыдущий контент списка, т.к. каждую секунду мы его заново формируем
	List<WebElement> resultList = searchBlock.findElements(By.tagName("div")); // все вебэлементы блока
	for (WebElement result : resultList) {
		classNamesList.add(result.getAttribute("className")); // забираем их класснэймы
	}
	try {
		Thread.sleep(1000); // ждём секунду.
	} catch (Exception e) { }
}

if (classNamesList.contains("sq_preview")) { // если класс всё-таки нашли в течение 5 секунд
	WebElement result = searchBlock.findElement(By.className("sq_preview")); // берём этот класс
	List<WebElement> resultList = result.findElements(By.tagName("div")); // берём список элементов, содержащих названия фильмов.
	...
} else {
	commonLog("PopUp doesn't exist"); // если класс не нашли, значит, попапчик не появился.
}
На месте многоточий в нашем распоряжении находятся все WebElement-ы, содержащие названия фильмов. Можно делать с ними всё, что угодно!

А каким инструментом Вы пользуетесь? А то я написал код, не спросив :)
  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#4 Mihail

Mihail

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

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

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

Спасибо за ответ!
Использую правда пока что Selenium IDE
  • 0

#5 Petrov.Sergey

Petrov.Sergey

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

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 12 июля 2013 - 07:08

Спасибо за ответ!
Использую правда пока что Selenium IDE


Selenium IDE, насколько мне изменяет память, поддерживает куски кода.
Рекомендую постепенно переползать с Selenium IDE на какую-нибудь независимую платформу и программировать автотесты с использованием библиотеки selenium.
Появится больше возможностей + искать элементы можно не только по xpath (помню свои мучения, связанные с написанием длинных путей и прописыванием всех необходимых атрибутов).
  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).


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

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