我正在尝试使用C#中的selenium运行chrome headless,但我一直收到此错误:
您使用的是不受支持的命令行标志: --ignore-certificate-errors,稳定性和安全性将受到影响。
我正在使用
我的代码:
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”的按钮。
答案 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");