簡體   English   中英

Selenium API 在 Chrome 瀏覽器中不工作

[英]Selenium API is not working in Chrome browser

我在 C# 中創建了一個基本的 Selenium 控制台應用程序,它打開一個URL ,登錄並執行一些活動。

該代碼在 Dev VM 中運行良好,但相同的代碼在生產 VM 中不起作用。 在 Prod VM 中,代碼只是打開 URL(登錄頁面),它不處理任何內容。

我用谷歌搜索並嘗試添加不同的選項,但沒有任何效果。

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--incognito");
chromeOptions.AddArgument("no-sandbox");
chromeOptions.AddArgument("disable-infobars");
chromeOptions.AddArgument("--ignore-ssl-errors");
chromeOptions.AddArgument("--ignore-certificate-errors-spki-list");
chromeOptions.AcceptInsecureCertificates = true;
string path = @"local Chromedriver.exe(103.0.5060.134) path";
IWebDriver driver = new ChromeDriver(path, chromeOptions, TimeSpan.FromMinutes(2));
driver.Url = "url";

我有 chromedriver 103.0.5060.134 ,與 chrome 瀏覽器的版本相同。 不知道我還需要檢查什么。

主要錯誤是:

[67852:69648:0818/112450.083:ERROR:ssl_client_socket_impl.cc(996)] handshake failed; returned -1, SSL error code 1, net_error -101 

這在開發實例中沒有發生。 這是我在生產中得到的: 在此處輸入圖像描述

鉻版在此處輸入圖像描述

更新

我已將 Chrome 驅動程序更新為104版本,並將 Chrome 瀏覽器更新為104.0.5112.102 ,但仍然出現相同的錯誤。 在此處輸入圖像描述

更新的 Chrome 版本在此處輸入圖像描述

我在 dev 中有相同的驅動程序版本和 chrome 版本,它工作正常。 有沒有辦法讓我獲得額外的日志? 不知道為什么在生產中完全失敗。

首先,此錯誤消息...

[67852:69648:0818/112450.083:ERROR:ssl_client_socket_impl.cc(996)] handshake failed; returned -1, SSL error code 1, net_error -101 

...意味着 ChromeDriver 和 Chrome 瀏覽器之間的握手在某些時候失敗了。


細節

根據ERROR:ssl_client_socket_openssl.cc 握手失敗,主要問題是當ChromeDriverChrome中的SSL 頁面握手時握手失敗 雖然Chromium團隊通過net_unittestscontent_testsbrowser_testsSSL 握手進行了測試,但並不詳盡。 依賴上游測試,一些用例被遺漏了。


強制檢查

始終確保:


不需要的 Arguments

不是很清楚為什么需要添加這么多 arguments。 然而,

  • --incognito :沒有必要,因為ChromeDriver啟動的會話默認是沙盒的。 所以你可以丟棄它。
  • --no-sandbox :除非您的程序在啟動過程中以root用戶(管理員)身份在 Linux 上執行時崩潰,否則不需要。 所以你可以刪除它。
  • disable-infobars :它不再有效。 所以你可以丟棄它。
  • --ignore-certificate-errors-spki-list :除非--user-data-dir參數也存在,否則無效。 所以你可以刪除它。

結合上述更改,您會很喜歡 go。

暫無
暫無

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

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