c# - chromedriver - ignore-certificate-errors

时间:2015-05-04 01:24:46

标签: c# selenium selenium-webdriver selenium-chromedriver

我尝试将ChromeDriver 2.4.226107与Selenium 2.45,Google Chrome 42.0.2311.135,Visual Studio 2012和.NET 4.5一起使用。我的小测试应用程序编译并运行,但是当它启动一个新的Chrome窗口时,我收到此错误:

"You are using an unsupported command-line flag: --ignore-certifiate-errors. Stability and security will suffer."

我仔细阅读this post并尝试了许多建议的修复程序,但没有任何效果。我一次又一次地看到建议的解决方法/解决方案就是这样做:

options.AddArgument("test-type");

这对Chrome 42.0没有任何作用。这是我的C#代码(控制台应用程序):

using(var driver = new ChromeDriver()) {
    driver.Navigate().GoToUrl("http://localhost/test.aspx");
}

黄色栏内有错误的Chrome窗口如下所示:

enter image description here

  1. 有解决方案吗?
  2. 在Chrome网络应用中运行自动化测试的方式是否比Selenium更好/更简单?

1 个答案:

答案 0 :(得分:5)

我不知道WTH发生了什么事,但今天早上突然间这完全正常。昨晚这个相同的代码没有用。无论如何,如果它对任何人有帮助,这里是用于.NET的chromedriver 2.5,.NET 4.5和Selenium 2.45二进制文件的完整工作C#代码:

static void Main(string[] args) {
    ChromeOptions options = new ChromeOptions();
    options.AddArgument("test-type");

    // Initialize the Chrome Driver
    using(var driver = new ChromeDriver(options)) {
        driver.Navigate().GoToUrl("http://localhost/test.aspx");

        // Get User Name field, Password field and Login Button
        var userNameField = driver.FindElementById("txtUsername");
        var userPasswordField = driver.FindElementById("txtPassword");
        var loginButton = driver.FindElementById("btnLogin");

        // Type user name and password
        userNameField.SendKeys("MyUSN");
        userPasswordField.SendKeys("MyPWD");

        // and click the login button
        loginButton.Click();

        // Take a screenshot and save it into screen.png
        driver.GetScreenshot().SaveAsFile(@"F:\temp\screen.png", ImageFormat.Png);

        Console.ReadLine();
    }
}

注意:要为所有测试重复使用相同的Chrome浏览器窗口,请创建一个静态类变量:

private static ChromeDriver driver;

(实际上,您可能希望将所有类级变量设置为静态。)

然后执行以下操作,以便您可以在所有测试中重复使用ChromeDriver的句柄:

[ClassInitialize] // this only executes ONCE per test-run (not once per test!)
public static void OneTimeSetup(TestContext ctxt) {
    ChromeOptions options = new ChromeOptions();
    options.AddArgument("test-type");
    options.AddArgument("start-maximized");
    options.LeaveBrowserRunning = true;
    driver = new ChromeDriver(@"C:\MyStuff", options);
    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(4));
}