Как найти элементную часть тега привязки

Я совершенно новичок в селене. Пожалуйста, примите извинения за глупый или глупый вопрос.

У меня ниже на сайте. Меня интересует, как я могу получить значение data-selectdate с помощью selenium + python. Получив значение data-selectdate, я хотел бы сравнить его с интересующей меня датой.

Ваша помощь очень ценится.

Примечание. Я не использую Красивый суп или что-то в этом роде.

Ваше здоровье

<table role="grid" tabindex="0" summary="October 2018">
  <thead>
    <tr>
      <th role="columnheader" id="dayMonday"><abbr title="Monday">Mon</abbr></th>
      <th role="columnheader" id="dayTuesday"><abbr title="Tuesday">Tue</abbr></th>
      <th role="columnheader" id="dayWednesday"><abbr title="Wednesday">Wed</abbr></th>
      <th role="columnheader" id="dayThursday"><abbr title="Thursday">Thur</abbr></th>
      <th role="columnheader" id="dayFriday"><abbr title="Friday">Fri</abbr></th>
      <th role="columnheader" id="daySaturday"><abbr title="Saturday">Sat</abbr></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td role="gridcell" headers="dayMonday">
        <a data-selectdate="2018-10-22T00:00:00+01:00" data-selected="false" id="day22" 
          class="day-appointments-available">22</a>
      </td>
      <td role="gridcell" headers="dayTuesday">
        <a data-selectdate="2018-10-23T00:00:00+01:00" data-selected="false" id="day23" 
          class="day-appointments-available">23</a>
      </td>
      <td role="gridcell" headers="dayWednesday">
        <a data-selectdate="2018-10-24T00:00:00+01:00" data-selected="false" id="day24" 
          class="day-appointments-available">24</a>
      </td>
      <td role="gridcell" headers="dayThursday">
        <a data-selectdate="2018-10-25T00:00:00+01:00" data-selected="false" id="day25" 
          class="day-appointments-available">25</a>
      </td>
      <td role="gridcell" headers="dayFriday">
        <a data-selectdate="2018-10-26T00:00:00+01:00" data-selected="false" id="day26" 
          class="day-appointments-available">26</a>
      </td>
      <td role="gridcell" headers="daySaturday">
        <a data-selectdate="2018-10-27T00:00:00+01:00" data-selected="false" id="day27" 
          class="day-appointments-available">27</a>
      </td>
    </tr>
  </tbody>
</table>

person akumar    schedule 21.09.2018    source источник
comment
можете ли вы поделиться ссылкой на веб-сайт, так как он выглядит как текущий html, не отображающий соответствующий элемент   -  person thebadguy    schedule 21.09.2018
comment
К сожалению, URL динамически обновляет календарь. Так что я не думаю, что это нам поможет. В дополнение к этому URL-адрес идет на три четыре страницы ниже после учетных данных для входа.   -  person akumar    schedule 21.09.2018
comment
Возможный дубликат Как получить атрибут элемента из Selenium?   -  person JeffC    schedule 21.09.2018
comment
Взгляните на ссылку ^... вы получите атрибут data-selectdate, и он вернет то, что вы хотите, в виде строки. Оттуда вы можете выполнить сравнение строк с существующей датой и т. д.   -  person JeffC    schedule 21.09.2018


Ответы (2)


Чтобы получить значения атрибута data-selectdate, вы можете использовать следующее решение:

elements = driver.find_elements_by_css_selector("table[summary='October 2018'] tbody td[role='gridcell'][headers^='day']>a")
for element in elements:
    print(element.get_attribute("data-selectdate"))
person DebanjanB    schedule 21.09.2018
comment
Спасибо дружище, попробую. - person akumar; 21.09.2018

Вы можете использовать get_attribute API класса element для чтения значения атрибута элемента.

css_locator = "table tr:nth-child(1) > td[headers='dayMonday'] > a"
ele = driver.find_element_by_css_selector(css_locator)
selectdate = ele.get_attribute('data-selectdate')
person yong    schedule 21.09.2018