首页 > 解决方案 > 在 Python 上使用无头 Selenium Chrome 驱动程序时未加载网页页面

问题描述

我正在从一些在我镇上发布活动的本地网站上进行一些抓取。它们显示过去和未来的事件。我只对未来事件感兴趣,所以在运行抓取时,我使用以下代码向下滚动到过去事件(这意味着整个未来事件表已经加载):

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)

因此,当无头时,它无法再找到过去的事件文本。如果我删除找到过去事件的代码位(此时我会满足于任何事情以无头),刮板将不再返回任何东西,所以基本上它不会在无头时加载任何事件.

关于如何强制页面以无头模式完全加载的任何想法?

标签: pythongoogle-chromeseleniumheadless

解决方案


推荐阅读