【问题标题】:How to disable automatic updates of Chrome when run with Selenium?使用 Selenium 运行时如何禁用 Chrome 的自动更新?
【发布时间】:2023-02-09 01:07:27
【问题描述】:

我有一个自动测试套件,它使用 Selenium 来控制具有特定版本的 Chrome 浏览器。但是,Chrome 会尝试在测试运行之间进行自我更新。如何防止 Chrome 自动更新?

【问题讨论】:

  • 请参阅此处:chromium.org/administrators/turning-off-auto-updates 或者,您可以设置系统环境属性以阻止 ChromeDriver 检查版本匹配。例如:在 Java 中:System.setProperty ("webdriver.chrome.disableBuildCheck", "true");这可能只适用于 Selenium 4.x……我还没有在旧的 3.x 版本上测试过。
  • 不幸的是,该链接没有提供有关在 Mac 上禁用 Chrome 更新的信息。目前尚不清楚 Windows 指令(涉及摆弄全局注册表)如何仅隔离到 Chrome 浏览器的测试副本,而不是应用于同一台计算机上的每个 Chrome 浏览器。
  • FWIW,我设法找到Google's official instructions for turning off Chrome updates on macOS。不幸的是,它似乎适用于同一台计算机上的所有 Chrome 副本。我更愿意将更新限制在用于测试的单个 Chrome 副本上。
  • 您可以使用 Chrome 的独立版本/分支,例如 Slimjet。我不认为那会自动更新。 (我将其用于 Chrome v49,这是 WindowsXP 支持的最后一个版本)但不确定它是否适合您的需要。

标签: selenium google-chrome selenium-webdriver selenium-chromedriver


【解决方案1】:

从 Google Chrome 二进制文件中删除写入权限似乎可以防止其自我更新,至少在 macOS 上是这样。

在 Python 中,您可以使用如下代码来做到这一点:

import subprocess

def remove_write_permissions(itempath: str) -> None:
    subprocess.run([
        'chmod',
        '-R',
        'a-w',
        expected_app_path
    ], check=True, capture_output=True)

remove_write_permissions('/Applications/Google Chrome.app', True)

我只在 macOS 上测试过这段代码。它可能也适用于 Linux,但可能不适用于 Windows。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2010-11-21
    相关资源
    最近更新 更多