java - Chrome 浏览器无头问题:某些特定页面未在无头模式下呈现
问题描述
我正在尝试在 Python 中使用 selenium 和 chrome 浏览器自动化一个过程。我的浏览器在大多数页面上都能正常工作,但无法呈现一些页面,包括chrome://version/
. 对于一般自动化(无头),它正确返回页面和页面源,而对于无头浏览,它返回一个空白页面,页面源如下
<html><head></head><body></body></html>
我在不同的操作系统中尝试过 chrome,包括 OpenSUSE、fedora 和 Windows。我尝试过很多事情,例如:删除所有初始参数,使用无头浏览器。供参考:如果我运行此代码
from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions
options = ChromeOptions()
# to remove all arguments
options.add_experimental_option( 'excludeSwitches', ['disable-hang-monitor', 'disable-prompt-on-repost', 'disable-background-networking', 'disable-sync', 'disable-translate', 'disable-web-resources', 'disable-client-side-phishing-detection', 'disable-component-update', 'disable-default-apps', 'disable-zero-browsers-open-for-tests', '--enable-automation', '--use-mock-keychain', '--user-data-dir', '--enable-blink-features', '--disable-popup-blocking', '--enable-logging --force-fieldtrials=SiteIsolationExtensions/Control', '--enable-logging', '--force-fieldtrials', '--ignore-certificate-errors', '--load-extension', '--log-level', '--no-first-run','--password-store','--remote-debugging-port','--test-type'
])
options.add_argument("--headless")
options.add_argument("--no-sandbox")
browser = Chrome(executable_path=driver_path,options=options)
browser.get("chrome://version")
print(browser.page_source)
它为无头返回相同的空白页
<html><head></head><body></body></html>
如果 chrome 在没有无头选项的情况下运行,它将完全正常工作。
<!doctype html>
<!--
about:version template page
-->
<html id="t" dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<title>About Version</title>
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<link rel="stylesheet" href="chrome://version/about_version.css">
......................
解决方案
推荐阅读
- java - 我想使用 Jsoup 从整个在线词典中获取定义,我必须做些什么来防止我的 IP 被阻止?
- pointers - 如何使用指向字符串数组的指针而不进行强制转换
- python - 在 postgresql 中为 date_time 字段转换日期
- json - 如何在 Vue 中将 CSV 文件转换为 JSON
- spring-boot - 寻找一种在 docker bridge 网络中的 nginx 后面的多个容器化 Spring Boot 应用程序之间进行通信的方法
- python - 2d np数组上的Python numpy布尔掩码
- python - 退格并在python中的关键字前添加逗号
- angular - Angular11 - NG0303:无法绑定到“ngForOf”,因为它不是“tr”的已知属性
- flutter - Dart Flutter 中的嵌套 groupby
- c++ - 引用头文件中的嵌套类(结构)