无法在 Chrome v76 中隐藏“Chrome 正在由自动化软件控制”信息栏

use*_*179 5 selenium-chromedriver

这不是一个真正的新问题,也不是原始问题的答案,而是要求澄清,因为原始问题的答案不完整,但任何澄清请求都会被删除......

原始帖子在这里...无法在 Chrome v76 中隐藏“Chrome 正在由自动化软件控制”信息栏

因此,虽然我理解您的原始答案,但我们不使用 Chrome 的托管实例,而且我们都在 Windows 10 家庭版上运行......因此,您的答案设置不是我们的选择。另一方面,我们所有的回归测试现在都失败了,因为这个愚蠢的横幅阻碍了一切。

运行 Windows 10 家庭版的非 IT 管理用户是否可以取消此横幅?

如果没有,谷歌如何期望我们继续使用 Chrome 进行测试?非常感谢任何建议......另外,我正在使用 Python,所以如果你提供代码示例,请记住这一点......这是我目前正在做的事情,它在上周之前工作,但现在不工作。 ..

options = webdriver.ChromeOptions()

options.add_argument('--start-maximized')
options.add_argument("--disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-automation")

options.add_argument("--log-level=3")
# options.add_argument('headless')
options.add_argument('window-size=1920x1012')
options.add_experimental_option("prefs", {"download.prompt_for_download": False})
options.add_experimental_option("prefs", {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}]})
options.add_experimental_option("prefs", {"download.default_directory": os.path.abspath(context.BaseResultsDir + '/Downloads/')})
options.add_experimental_option("prefs", {"download.extensions_to_open": "applications/pdf"})
context.driver = webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)

use*_*179 5

经过多次谷歌搜索,这终于对我有用了...更新了 Selenium,切换到 ChromeDriver 的 Canary 版本,然后对我的测试代码(即 Python)进行了这些调整...

# options.add_argument("--disable-infobars")  <<< TOOK THIS OUT
# options.add_argument("--disable-automation")  <<< TOOK THIS OUT

options.add_experimental_option("excludeSwitches", ["enable-automation"])  <<< PUT THIS IN  (Finding this one was the real killer)
options.add_experimental_option("useAutomationExtension", False)  <<< PUT THIS IN
Run Code Online (Sandbox Code Playgroud)

你的解决方案和我的非常相似。感谢您的发表。

大卫


Dev*_*Dev 2

信息栏设置背后的原因可能是上周仍然有效,而不是本周,可能是您已经更新/自动更新了 chromedriver 或 chromebrowser。但是,您禁用信息栏的设置不起作用,因为根据2018 年 1 月 10 日的提交--disable-infobars该选项已从 chrome 选项中删除

解决方案 - 保留这条线没有任何作用,options.add_argument("--disable-infobars")您可以将其删除。

  1. options.add_argument("--disable-automation")

这条线对解决方案造成了真正的困惑,因为有两种不同的方法可以做到这一点(默认情况下启用此开关,我们必须将其删除以禁用信息栏)。此行禁用密码保存 UI 有关更多详细信息,请阅读这篇精彩的讨论

  1. 使用此行通过排除启用自动化开关来禁用信息栏 -

    options.add_experimental_option("excludeSwitches" , ["enable-automation"])
    它在某种程度上解决了问题,当我尝试使用这个间歇性的开发人员代码插件时,会弹出窗口并要求启用/禁用它。它不会因此而消失options.add_argument("--disable-extensions")。如果您遇到同样的问题,请使用另一个开关来禁用它,如下所示-

  2. options.add_experimental_option("excludeSwitches" , ["enable-automation","load-extension"])

这从根本上解决了问题(加载扩展开关支持 Chromedriver v2.33 及更高版本)。但是,还有另一种方法可以禁用开发人员代码插件弹出窗口,您可以通过将 --disable-plugins 添加到 chrome 的快捷方式来实现

  1. 如果这些解决方案不适合您,那么此处的 chromium 命令行开关可以帮助您自定义 chrome 行为

    另外ChromeDriver(功能功能)已弃用,可用作

    capabilities = DesiredCapabilities.CHROME.copy() capabilities.update(options.to_capabilities())

    driver = webdriver.Chrome(chromedriver, desired_capabilities=capabilities)

在Java中禁用信息栏的解决方案

options.setExperimentalOption("excludeSwitches", Arrays.asList("enable-automation" , "load-extension"));
Run Code Online (Sandbox Code Playgroud)

将使用开发人员代码插件禁用信息栏