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

Фотография

поиск элемента по xpath

selenium python xpath

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

#1 Choson

Choson

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Игорь

Отправлено 22 октября 2019 - 12:31

<div class="field order_list_filter_date_input">
      <label>Дата начала периода</label>
      <div class="rdt input"></div>
</div>
 
Надо найти элемент <div class="rdt input"></div>, но таких 4 на странице (если искать с родительским элементом)
Идея такая: найти по xpath по тексту <label>, подняться до родительского и спуститься на нужный. как это сделать не знаю.
 driver.find_element_by_xpath("//*[contains(text(), 'Дата начала периода')]")

нашел элемент по тексту. как подняться до родительского и спуститься на нужный - вопрос

Помогите пожалуйста!


  • 0

#2 BabyRoot

BabyRoot

    Специалист

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


Отправлено 22 октября 2019 - 12:49

"//*[contains(text(), 'Дата начала периода')]/../div[@class='rdt input']"

  • 0

#3 user12

user12

    Специалист

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


Отправлено 22 октября 2019 - 12:50

//*[contains(text(), 'Дата начала периода')]/../div[@class=xxxx]


  • 0

#4 Choson

Choson

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Игорь

Отправлено 23 октября 2019 - 07:12

То что нужно. Спасибо!


  • 0

#5 snertletv

snertletv

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Мироненко Федор

Отправлено 28 октября 2019 - 14:14

Ребята. Очень нужна помощь супер спецов. Из этого куска html 

<div class="catalog-detail-price" id="bx_117848907_19130_price">
<span class="catalog-detail-item-price">
<div id="bxdynamic_pbd_19130_start" style="/* display:none; */"></div> <span class="catalog-detail-item-price-current1">
 
237.04 ₽ </span>
<span class="unit">
за 1 шт </span>
<div id="bxdynamic_pbd_19130_end" style="display:none"></div> </span>
<meta itemprop="price" content="237.04">
<meta itemprop="priceCurrency" content="RUB">
<div class="available">
                                        <meta content="InStock" itemprop="availability">
<div class="avl">
<i class="fa fa-check-circle"></i>
<span>
                                                В наличии </span>
</div>
                                        </div>
</div>
 
Нужно вытащить Значение блока <meta itemprop="price" content="237.04"> а именно "237,04"
Может кто сталкивался. Это для datacol
Хелп....

  • 0

#6 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 28 октября 2019 - 16:37

А в чем проблема? Какой ваш вариант?


  • 0

#7 snertletv

snertletv

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Мироненко Федор

Отправлено 29 октября 2019 - 06:14

Да вот делаю такой запрос

 

//span[@class='catalog-detail-item-price']/span[@class='catalog-detail-item-price-current']

 

но не вытаскивает ничего. Хотя раньше вытаскивал. Уже голову сломал....


  • 0

#8 BabyRoot

BabyRoot

    Специалист

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


Отправлено 29 октября 2019 - 07:19

Потому что теперь current1


  • 0

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 29 октября 2019 - 09:02

Выше вам подсказали одну из причин. Правда там вы получите "237,04 Р ".

А вы пишите, что вам нужно значение "<meta itemprop="price" content="237.04"> а именно "237,04".

Тогда получается что-то вроде:

//span[@class="catalog-detail-item-price-current1"]//meta[@itemprop="price"]

При этом получать вам нужно атрибут content (зависит от языка и команд, которые вы используете).


  • 0



Темы с аналогичным тегами selenium, python, xpath

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

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