簡體   English   中英

Selenium-ChromeDriver SSL 錯誤/握手失敗

[英]Selenium-ChromeDriver SSL error/handshake failed

我的腳本拋出了大量 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)

我不確定錯誤是否在我上面的代碼中,如果我應該添加的東西不存在,或者這些錯誤是否真的可以被抑制。

如果有幫助,這是一段舊代碼,直到幾天前都運行良好。 有問題的站點添加了一些 ad.network 腳本,這導致了一些 SSL 證書問題。

任何幫助表示贊賞。

您可以嘗試使用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());
    }

改變它從

browser = webdriver.Chrome(chrome_options=options, executable_path = path_to_chromedriver)

browser = webdriver.Chrome(executable_path = path_to_chromedriver, options=options)

這應該可以解決您的問題

這是由於不安全的地址錯誤。 您可以通過添加“--ignore-certificate-errors”參數來忽略這一點。

以機器人框架-selenium 中的案例為例:

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

這將解決您遇到的問題。 如果您忽略此參數,則可能會出現“錯誤:ssl_client_socket_impl.cc”的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM