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

Фотография

Поиск всех элементов на странице с одним и тем же классом. Python

all element on a page python selenium

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

#1 Varfalamei

Varfalamei

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

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

Отправлено 18 мая 2016 - 14:16

Здравствуйте!

 

Имеется такая страница (кусок ее html):

<p class="go-marker-map" data-marker-id="361" style="border-bottom: 1px dashed #999; cursor: pointer; display: inline-block; font-weight: bold; margin-bottom: 10px; padding-bottom: 1px;" title="Показать на карте">г. Москва, пер. Орловский, дом 7</p>

<p class="go-marker-map" data-marker-id="362" style="border-bottom: 1px dashed #999; cursor: pointer; display: inline-block; font-weight: bold; margin-bottom: 10px; padding-bottom: 1px;" title="Показать на карте">г. Москва, пер. Спиридоньевский, дом 5, стр. 1</p>

<p class="go-marker-map" data-marker-id="13527" style="border-bottom: 1px dashed #999; cursor: pointer; display: inline-block; font-weight: bold; margin-bottom: 10px; padding-bottom: 1px;" title="Показать на карте">г. Москва, ул. Трифоновская, дом 26</p>

<p class="go-marker-map" data-marker-id="13526" style="border-bottom: 1px dashed #999; cursor: pointer; display: inline-block; font-weight: bold; margin-bottom: 10px; padding-bottom: 1px;" title="Показать на карте">г. Москва, ул. Щепкина, дом 35</p>

Необходимо вычленить содержимое всех тегов <p>. Подскажите, пожалуйста, как это сделать.
Использование

address = driver.find_element_by_xpath("//p[contains(concat(' ', @class, ' '), 'go-marker-map')]").text

сохраняет содержимое лишь первого тега.

Использование Selenium в данной задаче необходимо.


  • 0

#2 Little_CJIOH

Little_CJIOH

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

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 18 мая 2016 - 14:30

addresses = driver.find_elements_by_xpath("//p[contains(concat(' ', @class, ' '), 'go-marker-map')]")

получите list элементов


  • 1

#3 homyak

homyak

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Алексей
  • Город:Домодедово


Отправлено 18 мая 2016 - 14:35

увидеть бы кусочек побольше


  • 0

#4 Varfalamei

Varfalamei

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

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

Отправлено 18 мая 2016 - 14:36

addresses = driver.find_elements_by_xpath("//p[contains(concat(' ', @class, ' '), 'go-marker-map')]")

получите list элементов

Все верно.
Огромное Вам спасибо!


  • 0

#5 DmitriyQA

DmitriyQA

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

  • Members
  • PipPipPip
  • 183 сообщений
  • ФИО:Коваленко Дмитрий Владимирович
  • Город:Tel Aviv

Отправлено 19 мая 2016 - 13:22

В webdriver есть нативная функция getElements которая вернет вам все элементы с этим селектором. Если таких эелементов на странице много - используй вложенность. Возльми сначала родительский элемент а затем в нем найди нужные. Далее можно созранить этот список допустим в ArrayList и использовать елементы по номерам из списка. 

 

public ElementStream<MenuSection> sections() {
return getElements().byClass("openrest_menubuildersectionpane_wrapper", MenuSection.class);
}

 

Или второй вариант - взять елмент по атрибуту

getElement().byAttribute("data-marker-id""361"ElementBase.class)


  • 0

Senior QA/ Wix.com / qaacademy.net


#6 user12

user12

    Специалист

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


Отправлено 19 мая 2016 - 13:37

Очень сложный код

 

Проще всего получать список веб-элементов и работать со списком, т.е. как и написал Little_CJIOH


  • 1



Темы с аналогичным тегами all element on a page, python, selenium

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

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