python - 在 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)
因此,当无头时,它无法再找到过去的事件文本。如果我删除找到过去事件的代码位(此时我会满足于任何事情以无头),刮板将不再返回任何东西,所以基本上它不会在无头时加载任何事件.
关于如何强制页面以无头模式完全加载的任何想法?
解决方案
推荐阅读
- python - 从列表中删除字符串元素的函数
- r - 在 R 中使用 WRS2 包与手动计算的稳健 ancova 的差异
- c++ - C++ 类:必须显式初始化成员
- javascript - 运行电子生成器后 setBadgeCount() 不起作用
- openmodelica - 从 OpenModelica 中的 CombiTimeTable 读取数据
- nosql - 如何根据旧值自动更新 RethinkDB 中的文档?
- flutter - 如何使用 google_sign_in 仅获取电子邮件
- javascript - React 循环发送多个请求并等待
- python - 写 3 个正数并求和
- swift - 如何将多个 UI 分配给一个参数,例如 UILabels 和 UIButtons?