Селен нажмите на кнопку следующей страницы, пока не исчезнет - PullRequest
0 голосов
/ 02 мая 2020

У меня есть веб-сайт, на котором я хочу нажимать «следующую страницу», пока она не достигнет последней, где кнопка «следующая страница» больше не существует. Я успешно удалил первую страницу со всеми элементами, которые мне нужны, плюс расположил кнопку. Я могу сделать код уродливым, например, поместив режим сна, и control- c control-v снова для l oop. Я ищу какой-то лучший способ сделать

try:
    for x in range (len(price)):
        print(price[x].text, location[x].text, area_size[x].text)
except (NoSuchElementException, StaleElementReferenceException):
    print("QUITTING!")
    driver.quit()
except TimeoutException:
    driver.quit()

next_page_button.click()
time.sleep(10)

try:
    for x in range (len(price)):
        print(price[x].text, location[x].text, area_size[x].text)
except (NoSuchElementException, StaleElementReferenceException):
    print("QUITTING!")
    driver.quit()
except TimeoutException:
    driver.quit()

Это работает, но У меня есть 14 кнопок на следующей странице, которые мне нужно нажать, и они меняются. Есть ли более простой способ создать форму l oop с условием if, если мы останемся, если

next_page_button.size = 0 (я предполагаю, что он достиг последняя страница) мой для l oop останавливается?

1 Ответ

0 голосов
/ 02 мая 2020

У вас может быть бесконечное время, пока l oop постоянно нажимает кнопку следующей страницы, а затем отключает l oop, когда вы больше не можете найти кнопку.

try:
    while True:
        for x in range (len(price)):
            print(price[x].text, location[x].text, area_size[x].text)
        next_page_button.click()
        time.sleep(10)
except (NoSuchElementException, StaleElementReferenceException):
    print("QUITTING!")
    driver.quit()
except TimeoutException:
    driver.quit()

Кроме того, вместо просто добавив 10-секундное ожидание загрузки страницы, вы можете реализовать объект WebDriverWait. Это будет продолжаться после загрузки целевого элемента или до истечения времени ожидания. Больше информации здесь: https://pythonbasics.org/selenium-wait-for-page-to-load/

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