【问题标题】:c# - chromedriver - ignore-certificate-errorsc# - chromedriver - 忽略证书错误
【发布时间】:2015-05-07 02:38:54
【问题描述】:

我正在尝试将 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 窗口如下所示:

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

【问题讨论】:

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


    【解决方案1】:

    我不知道 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));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 2010-11-21
      • 2023-03-23
      • 2017-07-31
      • 2018-01-12
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多