Я использую Selenium для навигации по страницам в очищающем проекте. Это HTML:
<input type="hidden" id="day_nr" value="2"/>
<div id="js-table" class="js-table table">
Day 2 of 2
<div class="js-pager">
<input id="myCustomUrl" name="myCustomUrl" type="hidden" value="/Ranking/Rankings"/>
<div class="pagination-container">
<ul class="pagination">
<li class=""><a class="days" id="day_1">Day 1</a></li>
<li class="active"><a class="days" id="day_2">Day 2</a></li>
</ul>
Когда я нажимаю go для перехода на следующую страницу, мне нужно подождать несколько секунд, прежде чем вызвать функцию очистки, в противном случае таблица не будет загружена, и я Буду просто скрести данные с предыдущей страницы. Мне кажется, я должен быть в состоянии сделать это 3 способами:
1) Используя элемент ввода <input type="hidden" id="day_nr" value="2"/>
:
element = wait.until(EC.text_to_be_present_in_element_value((By.ID, 'day_nr'), '2'))
2) Используя элемент div чуть ниже этого <div id="js-table" class="js-table table">
Day 2 of 2
:
element = wait.until(EC.text_to_be_present_in_element((By.ID, 'js-table'), 'Day 2 of 2'))
3) Использование элемента списка с «активным» классом <li class="active"><a class="days" id="day_2">Day 2</a></li>
:
element = wait.until(EC.text_to_be_present_in_element((By.CLASS_NAME, 'active'), 'Day 2'))
Все они запускаются без каких-либо ошибок, но программа все еще копирует данные с первой страницы, а не со второй. Кроме того, я создал некоторое время l oop, чтобы программа спала до тех пор, пока элемент с «активным» классом не совпадет с днем, который я собираюсь очистить; это работает просто отлично, но было бы намного чище, если бы я мог заставить явное ожидание работать.
Есть идеи, что я делаю неправильно?