Для справки: я использую Windows 10, и моя версия драйвера Chrome — 76.0.3809.132. Я также использовал PhantomJS, чтобы посмотреть, какой из них будет загружаться быстрее. Оба файла драйвера .exe располагаются в том же каталоге, что и тот, из которого я запускаю сценарий. До сегодняшнего дня у меня не возникало никаких проблем.
Код: Выделить всё
import selenium.webdriver as webdriver
from selenium.webdriver.chrome.options import Options
def scrollDownAllTheWay(driver):
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, 100*document.body.scrollHeight);")
time.sleep(3)
if "Load next page" in driver.page_source:
driver.find_element_by_css_selector('.myButton').click()
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
#Load this and comment out chrome headless code below, if needed.
#driver = webdriver.PhantomJS()
#Chrome driver
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
driver.get("https://www.chessable.com/discussion/thread/58883/official-chessable-launch-schedule-2019/")
scrollDownAllTheWay(driver)
Когда я запускаю приведенный ниже скрипт с помощью webdriver.Chrome() без заголовка, я сталкиваюсь со следующей ошибкой:
Код: Выделить всё
ElementClickInterceptedException: Message: element click intercepted: Element ... is not clickable at point (388, 23). Other element would receive the click: ... (Session info: headless chrome=76.0.3809.132)
Вопрос: Почему Chrome без головы сессия здесь не работает должным образом, а версия без headless работает?
Изменить: Я только что нашел этот пост, который может потенциально может быть полезен, но я не уверен.
Примечание. Я готов использовать другие драйверы браузера, такие как FireFox() или что-нибудь еще, в качестве потенциального обходного пути, но вопрос все равно остается.
Подробнее здесь: https://stackoverflow.com/questions/577 ... less-state
Мобильная версия