Как проверить, есть ли другая страница или нет с помощью Selenium в Python3 - PullRequest
0 голосов
/ 15 января 2019

Аналогично этому вопросу Селен - Как узнать, если следующей страницы не существует? , я хотел бы добиться аналогичной вещи на другом сайте (http://digesto.asamblea.gob.ni/consultas/coleccion/) с python3 и селеном .

Мне бы хотелось, чтобы мой скрипт проверил, активна ли стрелка «следующая страница» или нет.

Это то, что я пробовал до сих пор (упрощенно):

try:
    driver.find_element_by_css_selector('li a[data_page*=next] and not a[onclick*="return false"]').click() # check if another page exists
    print("There is another page.")
except NoSuchElementException:
    print("No further page exist.")

На вышеупомянутом веб-сайте исходный код неактивной стрелки выглядит следующим образом:

enter image description here

в активном состоянии это выглядит так:

enter image description here

Однако, похоже, я не получил правильный путь к селектору css. Сценарий говорит мне, что второй страницы нет, хотя она существует.

1 Ответ

0 голосов
/ 15 января 2019

@ Комментарий Джеффа был почти идеальным, но имел дефект. Вы можете использовать следующее решение:

try:
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li:not(.disabled)>a[data-page='next']"))).click()
    print("There is another page.")
except TimeoutException:
    print("No more pages")
    break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...