(Python Selenium) Есть ли способ прочитать элементы html над кнопкой перед нажатием кнопки? - PullRequest
1 голос
/ 06 августа 2020

html проверить изображение

<td class="hidden-sm-down">Extra Time</td>
<td class="hidden-sm-down">2020-08-08T15:00</td>
<td class="hidden-sm-down">2020-08-08T19:00</td>
<td>Approved</td>
<td class="hidden-sm-down">  
      <button class="btn btn-secondary" data-backdrop="static" data-keyboard="false" data 
      target="#cancelRequestModal" data-toggle="modal" type="button">                                     
      Cancel

Формат веб-сайта показан на изображении выше, но будет повторяться для разных дат / времени; Мне было интересно, есть ли способ проверить время (например, 15:00 и 19:00), прежде чем нажимать кнопку «Отмена». То, как я делал это раньше, заключалось в том, чтобы поместить все кнопки в список и щелкнуть кнопку с индексом 9, однако это не сработает, если все было пропущено, а предыдущий индекс 9 теперь является индексом 8 (сдвиг перед индексом 9 был удален, поэтому все, что указано выше, сдвинуто вниз).

Один из них, который я думал, - это прочитать на время, а затем нажать первую кнопку, которую можно щелкнуть, однако я не знаю, как это сделать, и если это возможно .

1 Ответ

0 голосов
/ 06 августа 2020

Лучший способ прочитать элемент HTML над кнопкой - использовать «Xpath». Xpath даст вам функциональность / возможность перемещаться вперед и назад.

Используя приведенный ниже XPath, вы можете извлекать тексты внутри <td>. Более того, вы можете повторить то же самое, собрав его в список.

для 1-го <td> со временем вы можете использовать ниже xpath - //button[contains(text(),"Cancel")]/parent::td/preceding-sibling::td[text()='Extra Time']/following-sibling::td[1]

для 2-го <td> со временем вы можете использовать ниже xpath - //button[contains(text(),"Cancel")]/parent::td/preceding-sibling::td[text()='Extra Time']/following-sibling::td[2]

вы можете извлечь текст с помощью свойства .text.

Я нахожу время относительно вашей кнопки, которая состоит из «Отмена» текст. Чтобы узнать точное время, вы можете использовать метод substring().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...