我在一些本地网站上做了一些报道,该网站发布了我镇上的活动。它们显示过去和未来事件。我只对Future Events感兴趣,所以在运行scrape时我使用下面的代码向下滚动到Past Events(这意味着已加载整个Future Events表):
my_element = driver.find_element_by_xpath("//*[contains(text(), 'Past Events')]")
driver.execute_script("return arguments[0].scrollIntoView();", my_element)
它完美无缺,给我所需的所有信息。但当我试图无头时,它会引发以下错误:
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), 'Past Events')]"}
我使用这段代码无头:
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(chrome_options=options)
因此,当无头时,它无法再找到“过去事件”文本。如果我删除了找到过去事件的代码(此时我会为了无头而解决任何问题),刮刀将不再返回任何内容,所以基本上它不会加载任何事件在没头的时候。
关于如何强制页面在无头模式下完全加载的任何想法?