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

Фотография

Задача на Python в webdriver - автопоиск по списку до конца

Python webdriver выбор последнего элемента

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

#1 301315

301315

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Андрей Иванов

Отправлено 19 февраля 2015 - 10:03

Доброго всем дня! Я начинающий пользователь web driver и Python, есть необходимость писать автотесты. Есть некоторые сложности, например, как вот эта:

Взят для образца типичный форум http://forum.volvo-c...wforum.php?f=43, на котором мне необходимо из представленных 14-и страниц выделенных на скриншоте, прогнать их по циклу все(или часть), до тех пор, пока ни будет найдет некий объект по текстовой линке(как например тот что выделен красным цветом в рамке). Вся сложность состоит в том, каким способом задать этот механизм поиска(1...14) и определить локатор этих 1...14 страниц(или м.б. их как текст линк задавать?)

В принципе автотесты у меня уже работаю и элементы логики в них присутствуют, но вот в этом месте(как пример) я не знаю как быть - как задать этот прогон с поиском на 1-14 стр. с последующим кликом по найденной ссылке.

 

 

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

  • Прикрепленный файл  19.02.png   295,18К   1 Количество загрузок:
  • Прикрепленный файл  19.02 - 2.png   422К   1 Количество загрузок:

  • 0

#2 Freiman

Freiman

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

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

Отправлено 19 февраля 2015 - 10:24

Ну, общее количество страниц оттуда выдрать вполне можно разными методами.
А далее просто менять значение параметра start=N в адресе.

И что это за у вас тестирование такое? Не автоматический постинг объявлений по форумам? :)
  • 0

#3 BabyRoot

BabyRoot

    Специалист

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


Отправлено 19 февраля 2015 - 10:26

0. начать цикл по страницам (номера страниц - num, начинать с 0, закончить - взять текст отсюда - css: "div.topic-actions:nth-child(3) span a:last-child", перевести в инт и вычесть 1)

{

1. просмотреть все ссылки на топики (css: .topictitle) на нужный текст - если найден, то клик по нему и выход из цикла (0 шаг),  если не найден, то переход к следующей странице

2. вычисление css следующей страницы: css: "div.topic-actions:nth-child(3) span > a[href*='&start=" + (num+1)*20 + "']" - были на первой, нужен переход на вторую - (num+1)*20

3. клик по тому что у нас получилось на 2 шаге - это переход на следующую страницу

}


  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 12 марта 2015 - 13:01

Примерно так:

			all_sections = drv.find_elements_by_xpath(self.count_section)
			count_all_sections = len(all_sections)
			section_num = 0
			while section_num < count_all_sections:
				section_num = section_num + 1
				section_name = drv.find_element_by_xpath(self.count_section + "[" + str(section_num) + "]//span").text
				drv.find_element_by_xpath(self.count_section + "[" + str(section_num) + "]//span").click()
                                if section_name == "123":
                                       break

  • 0

#5 301315

301315

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Андрей Иванов

Отправлено 12 марта 2015 - 13:48

 

Примерно так:

			all_sections = drv.find_elements_by_xpath(self.count_section)
			count_all_sections = len(all_sections)
			section_num = 0
			while section_num < count_all_sections:
				section_num = section_num + 1
				section_name = drv.find_element_by_xpath(self.count_section + "[" + str(section_num) + "]//span").text
				drv.find_element_by_xpath(self.count_section + "[" + str(section_num) + "]//span").click()
                                if section_name == "123":
                                       break

Спасибо!


  • 0



Темы с аналогичным тегами Python, webdriver, выбор последнего элемента

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

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