不支持的命令行标志:--ignore-certificate-errors

14 投票
6 回答
23254 浏览
提问于 2025-04-18 09:27

使用的是Python 2.7.5,selenium模块(版本2.41.0)和chromedriver(版本2.9)。

当Chrome浏览器启动时,会在一个黄色的弹出条上显示一条消息:“你正在使用一个不被支持的命令行标志:--ignore-certificate-errors。这样会影响稳定性和安全性。”这个简单的例子重现了这个问题。

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://google.com/")

我该如何在python selenium中去掉这个命令行标志呢?

6 个回答

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。为了帮助大家更好地理解这些问题,下面的内容将会用简单易懂的语言进行解释。

首先,了解一些基本概念是很重要的。比如,什么是变量?变量就像一个盒子,我们可以把数据放进去,随时取出来使用。这样,我们就可以在程序中灵活地处理这些数据。

接下来,我们可能会用到一些函数。函数可以看作是一个小工具,它可以执行特定的任务。我们只需要告诉它要做什么,它就会帮我们完成。这样,我们的代码就会变得更加简洁和易于管理。

在编程的过程中,错误是很常见的。遇到错误时,不要着急,先仔细检查代码,看看哪里可能出错了。通常,错误信息会给我们一些提示,帮助我们找到问题所在。

最后,记得多练习!编程是一项技能,只有通过不断的实践,才能逐渐掌握。遇到不懂的地方,可以查阅资料或者请教他人,学习是一个不断积累的过程。

希望这些简单的解释能帮助你更好地理解编程的基本概念,祝你学习愉快!

    options = webdriver.ChromeOptions()

    options.add_argument('test-type')
    chromedriver = 'resources/chromedriver.exe'



    os.environ["webdriver.chrome.driver"] = chromedriver

    self.driver = webdriver.Chrome(chromedriver,chrome_options=options)
1

这是我现在在Java中用来解决这个问题的方法,不过我不知道Python是怎么工作的,但试试看也没坏处。

ChromeOptions chrome = new ChromeOptions();
chrome.addArguments("test-type");
        capabilities.setCapability(ChromeOptions.CAPABILITY, chrome);
        capabilities.setCapability("chrome.binary",
                "C:\\set path to driver here\\chromedriver.exe");
3

你可以使用下面这个标志 --test-type

            var options = new ChromeOptions();
            options.AddArguments(new[] {
                "--start-maximized",
                "allow-running-insecure-content", 
                "--test-type" });

            return new ChromeDriver(options);
13

这段额外的代码帮我去掉了 --ignore-certificate-errors 这个命令行参数。我觉得可以在某个地方更好地记录一下可以加到 webdriver.Chrome() 里的参数,因为我是在 chromedriver 问题页面 的评论中找到这个解决方案的(见第25条帖子)。

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])
browser = webdriver.Chrome(chrome_options=options)
browser.get("http://google.com/")
3

这个问题在Chromedriver 2.11版本中已经解决了(这个版本是在2014年10月发布的)。只需要更新到这个版本就可以解决问题了。

撰写回答