Selenium ChromeOptions 的含义

Tal*_*gel 4 selenium google-chrome-headless

我在无头模式下使用 Selenium 时遇到了很多问题。因此,我将这些选项添加到我的 ChromeOptions 对象中:

  1. --proxy-server='direct://'
  2. --代理绕过列表=*
  3. --禁用-dev-shm-用法
  4. --禁用浏览器端导航

我看到它帮助 Selenium 更快地工作并在无头模式下提供更好的结果,但我不明白每个选项的真正含义。每个选项的作用是什么?

Nan*_*n A 5

- 代理服务器

使用指定的代理服务器,覆盖系统设置。此开关仅影响 HTTP 和 HTTPS 请求。


--代理绕过列表

指定我们绕过代理设置并使用直接连接的主机列表。除非还指定了 --proxy-server,否则将被忽略。这是一个以逗号分隔的绕过规则列表。

有关更多详细信息,请参阅: https://source.chromium.org/chromium/chromium/src/+/main :net/proxy_resolution/proxy_bypass_rules.h?q=net%2Fproxy_resolution%2Fproxy_bypass_rules.h&ss=chromium


--禁用-dev-shm-用法

在某些虚拟机环境中,/dev/shm 分区太小,导致 Chrome 失败或崩溃。使用此标志可以解决此问题(临时目录将始终用于创建匿名共享内存文件)。

查看错误详细信息https://bugs.chromium.org/p/chromium/issues/detail ?id=715363


--禁用浏览器端导航

每当您在 selenium 驱动程序的帮助下加载某些页面时,驱动程序脚本都会等待页面完全加载。但有时 webdriver 需要更多时间来加载页面,在这种情况下,您将在控制台中看到 TimeoutException 异常。所以你需要停止下载额外的子资源(图像,CSS,js等)你可以通过webdriver更改pageLoadStrategy

参考从渲染器接收消息超时:通过 Selenium Java 使用 ChromeDriver 和 Chrome v80 的 0.100 条日志消息


参考https ://peter.sh/experiments/chromium-command-line-switches/#proxy-server