如何在HeadlessChrome中解决“您使用的是不受支持的命令行标志:--ignore-certificate-errors,稳定性和安全性”

时间:2017-10-17 11:39:23

标签: c# selenium selenium-webdriver selenium-chromedriver google-chrome-headless

我正在尝试使用C#中的selenium运行chrome headless,但我一直收到此错误:

  

您使用的是不受支持的命令行标志:   --ignore-certificate-errors,稳定性和安全性将受到影响。

我正在使用

  • Chrome:61
  • ChromeDriver:2.3
  • 硒:3.6
  • .Net 4.5

我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace MyApp {
public partial class Form1: Form {
    public Form1() {
        InitializeComponent();
    }

    private void StartBtn_Click(object sender, EventArgs e) {
        string appPath = AppDomain.CurrentDomain.BaseDirectory;

        IWebDriver driver;
        ChromeOptions options = new ChromeOptions();
        options.AddArguments("--headless", "--disable-gpu", "--remote-debugging-port=9222", "--window-size=1440,900");
        driver = new ChromeDriver(options);
    }
}
}

我的WinForm应用程序只有一个名为“StartBtn”的按钮。

2 个答案:

答案 0 :(得分:1)

要摆脱以下错误:

  

您正在使用不受支持的命令行标志: - ignore-certificate-errors,稳定性和安全性将受到影响

当您使用 Selenium: 3.6 以及 Chrome: 61 时,请考虑使用 chromedriver v2.3 使用最新版本的 chromedriver.exe ,即 v2.33

此外,除了您现有的参数外,还添加以下参数: disable-infobars --disable-extensions

因此,代码行如下:

options.AddArguments("headless", "disable-gpu", "remote-debugging-port=9222", "window-size=1440,900", "disable-infobars", "--disable-extensions")

答案 1 :(得分:0)

以下是我为解决类似问题所做的

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--test-type");

以下是打开url的完整代码,希望对您有帮助

    System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Java\\chromedriver.exe");
    System.out.println(System.getProperty("webdriver.chrome.driver"));
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("no-sandbox");
    chromeOptions.addArguments("--test-type");// this is the one that helped
    chromeOptions.addArguments("disable-extensions");
    chromeOptions.addArguments("--start-maximized");
    WebDriver driver = new ChromeDriver(chromeOptions);
    driver.get("https://www.google.com");
    System.out.println("Google is selected");