【问题标题】:Unsupported command-line flag: --ignore-certificate-errors不支持的命令行标志:--ignore-certificate-errors
【发布时间】:2014-08-01 20:01:24
【问题描述】:

使用 Python 2.7.5、python 模块 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 中删除这个命令行标志?

【问题讨论】:

  • 这里是完全相同的问题stackoverflow.com/q/23834413/2504101,但解决方案似乎不同
  • 但这个问题涉及 java 代码,而不是 python
  • 已接受的答案现已过时:@Shawn Erquhart 说得对。无需摆弄 Chrome 选项,也不会显示警告。 Chrome 2.20 开箱即用。
  • @Peter Masar:对,已修复

标签: python selenium selenium-chromedriver


【解决方案1】:

这个额外的代码为我删除了 --ignore-certificate-errors 命令行标志。在我看来,可以(并且应该)在某处更好地记录可以添加到 webdriver.Chrome() 的参数,我在chromedriver issues page 的评论中找到了这个解决方案(参见帖子#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/")

【讨论】:

  • 为我工作。非常感谢!
  • 试过但对我不起作用(Python 2.7.8、selenium 2.42.1...不确定我使用的是哪个驱动程序版本... Chrome 的版本是 37.0.2062.120 m。我使用的是带有 SP1 的 Windows 7。)
【解决方案2】:

此问题已解决 as of Chromedriver 2.11(2014 年 10 月发布)。现在更新就可以解决问题了。

【讨论】:

    【解决方案3】:

    您可以使用以下标志 --test-type

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

    【讨论】:

    • 那是 javascript,不是 python,但是是的,有一些方法可以使用 test-type 标志来摆脱弹出栏并且仍然忽略证书错误
    【解决方案4】:

    这是我目前在 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");
    

    【讨论】:

      【解决方案5】:
          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)
      

      【讨论】:

        【解决方案6】:

        我在 Mac 上使用 Selenium2 和 Robot 时遇到了这个问题。问题最终是我的系统上安装了错误版本的chromedriver...

        $ chromedriver
        Starting ChromeDriver (v2.9.248307) on port 9515    <<Version 2.9 was the problem
        

        我在/usr/local/bin 中找到它,然后将其从official download page 中删除并替换它,它似乎已经全部清除了...

        $ chromedriver
        Starting ChromeDriver 2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1) on port 9515
        Only local connections are allowed.
        

        【讨论】:

          猜你喜欢
          • 2014-09-12
          • 1970-01-01
          • 2014-07-21
          • 1970-01-01
          • 2018-08-11
          • 1970-01-01
          • 2019-10-20
          • 2017-06-27
          • 1970-01-01
          相关资源
          最近更新 更多