Python: нажмите на следующую страницу без ссылки, чтобы следовать (javascript / AJAX) - PullRequest
0 голосов
/ 24 июня 2018

Я надеюсь, что добрая душа поможет мне здесь.Мне нужна помощь с переходом по следующей странице на этом сайте: https://www.xtip.co.uk/en/today/index.html.

Мой код:

from selenium import webdriver

url = 'https://www.xtip.co.uk/en/today/index.html'
browser = webdriver.Chrome('./Browser/chromedriver')
browser.get(url)

amount_of_pages_xpath = browser.find_element_by_xpath('//*[@id="widget_today_tabbed"]/div[2]/div[2]/div')
amount_of_pages_html = amount_of_pages_xpath.get_attribute('data-number-of-pages')

for x in range(len(amount_of_pages_html)):
    browser.find_element_by_xpath('//*[@id="widget_today_tabbed"]/div[2]/div[2]/div/ul/li[8]/a').click()

Он использует JavaScript и AJAX, и поэтому я использую Selenium,но я не могу заставить его переключать страницы.Что я делаю неправильно?Обычно это работает, когда я захожу в Chrome -> Inspect -> Copy Xpath -> Поместите этот путь в find_element_by_xpath () и добавьте click ().

enter image description here

Моя ошибка в консоли:

  selenium.common.exceptions.WebDriverException: Message: unknown error: Element <a href="#" class="widget-page-link widget-page-link-next" data-target-page="next">...</a> is not clickable at point (917, 654). Other element would receive the click: <div class="cc_message">...</div>
          (Session info: chrome=67.0.3396.87)
          (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.5 x86_64)

1 Ответ

0 голосов
/ 24 июня 2018

Вы можете использовать этот код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 

browser = webdriver.Chrome(executable_path = r'D:/Automation/chromedriver.exe')
browser.get("https://www.xtip.co.uk/en/today/index.html")

wait = WebDriverWait(browser, 30)

browser.execute_script("window.scrollTo(0, 800)") 

next_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.widget-page-link.widget-page-link-next")))

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