【问题标题】:Selenium-ChromeDriver SSL error/handshake failedSelenium-ChromeDriver SSL 错误/握手失败
【发布时间】:2017-01-20 07:46:37
【问题描述】:

我的脚本抛出大量 SSL 错误,如下所示:

[19852:2032:0912/202419:ERROR:ssl_client_socket_impl.cc(1141)] handshake failed;
 returned -1, SSL error code 1, net_error -100

[19852:2032:0912/202419:ERROR:ssl_client_socket_impl.cc(1141)] handshake failed;
 returned -1, SSL error code 1, net_error -100

一切正常,但错误不断循环并最终阻止脚本导致它全部停止。

我试图抑制如下错误...但没有效果:

path_to_chromedriver = 'C:/Path/to/Chromedriver'
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
browser = webdriver.Chrome(chrome_options=options, executable_path = path_to_chromedriver)

我不确定错误是否在我上面的代码中,如果我应该添加一些不存在的东西,或者这些错误是否真的可以被抑制。

如果有帮助,这是一段旧代码,直到几天前还可以正常工作。有问题的网站添加了一些导致 SSL 证书问题的广告网络脚本。

任何帮助表示赞赏。

【问题讨论】:

  • 我在尝试自动测试需要在外部域中运行的 Angular 应用程序时遇到了类似的问题。

标签: python selenium ssl selenium-chromedriver


【解决方案1】:

您可以尝试使用TrustManager 包,这是一个示例

    SSLContext sslContext;
    TrustManager[] tmTrustAllCerts = new TrustManager[]{
            new X509TrustManager() {
                public java.security.cert.X509Certificate[] getAcceptedIssuers()
                {
                    return null;
                }
                public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
                public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
            }
    };

    try {
        sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, tmTrustAllCerts, new SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
    }
    catch(Exception e) {
        System.out.println(e.getStackTrace());
    }

【讨论】:

    【解决方案2】:

    这是由于不安全地址错误造成的。您可以通过添加“--ignore-certificate-errors”参数来忽略它。

    以robot framework-selenium中的案例为例:

    Open Browser http://127.0.0.1/8000 Chrome executable_path=C:/path/to/chromedrive options=add_argument("--ignore-certificate-errors")

    这将解决您遇到的问题。如果忽略此参数,则有可能出现“ERROR:ssl_client_socket_impl.cc”的错误。

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 2014-01-14
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 2015-11-05
      • 2018-07-28
      相关资源
      最近更新 更多