Скажите веб-драйверу Selenium продолжать нажимать кнопку «Далее», пока он не сможет - PullRequest
0 голосов
/ 28 апреля 2018

Вот мой код:

for i in range(1,20):
    driver.find_element_by_link_text('Next').click()
    time.sleep(5)
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    token_holders = token_holders + soup.find_all('tr')
    del token_holders[50*i]
    time.sleep(5)

Я хочу, чтобы веб-драйвер продолжал нажимать «Далее», пока он не сможет, вместо того, чтобы я вводил количество раз, когда он должен быть нажат в цикле for, но я не уверен, как я могу это сделать

1 Ответ

0 голосов
/ 28 апреля 2018

Просто замените for цикл на while цикл следующим образом:

from selenium.common.exceptions import NoSuchElementException

while True:
    try:
        driver.find_element_by_link_text('Next').click()
    except NoSuchElementException:
        break
    time.sleep(5)
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    token_holders = token_holders + soup.find_all('tr')
    del token_holders[50*i]
    time.sleep(5)

Это должно позволить вам нажать кнопку "Next", пока это возможно, или остановиться, если кнопка не найдена на странице

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