selenium-webdriver - Selenium:无法在无头模式下访问 chrome 内部页面
问题描述
所有 chrome 内部页面(例如chrome://downloads)在无头模式下显示为空白并在正常模式下工作。
重现代码(Java)
webdriver.get("chrome://downloads/");
System.out.println(webdriver.getPageSource());
输出
<html><head></head><body></body></html>
输出没有无头参数(没有其他改变)
chrome://downloads页面已成功打开
,可以获取 1533 行作为源
细节
Selenium Java: 3.141.59
ChromedriverVersion: 83.0.4103.39
使用远程 Web 驱动程序
操作系统: MacOS 10.15.4
铬选项
options.addArguments("headless");
options.addArguments("disable-notifications");
options.addArguments("disable-application-cache");
options.addArguments("disable-features=IsolateOrigins,site-per-process"); //for network calls of iframes
options.addArguments("no-sandbox"); //for running in docker without chrome user
options.addArguments("disable-dev-shm-usage"); //write shared memory files into /tmp instead of /dev/shm
options.addArguments("user-agent="+"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
options.setExperimentalOption("w3c", false);
options.setExperimentalOption("excludeSwitches", new String[]{"enable-automation"});
打开下载页面对我来说很重要,我不想在下载文件夹或任何东西中使用文件阅读器。
解决方案
推荐阅读
- vhdl - vhdl 程序中的指令模块如何工作?
- jquery - 编写自定义帖子类型分页插件
- html - 如何将产品类别列更改为 4?
- kubernetes - Tiller:拨打 tcp 127.0.0.1:80:连接:连接被拒绝
- c# - C# .Net SQL Server 2012 - 插入文件 - System.Data.SqlClient.SqlException
- angular8 - 自定义 Angular 2+ 步进模块
- python - TypeError: 当我们使用 (old='XYZ',new='ABC') 时,replace() 不接受关键字参数
- ruby-on-rails - 如何使用 Vue 前端和 rails 后端实现 env vairables?是否需要使用 dotenv 包来完成此任务?
- mysql - 仅表情符号从 Hive 到 MySQL 的 Sqoop 导出失败
- c# - 如何管理从实用程序类加载动态视图