下載內容

舊版 Chrome

如果是舊版 Chrome,請使用下列版本的 ChromeDriver。

如要進一步瞭解如何選取正確的 ChromeDriver 版本,請參閱「版本選取」頁面。

ChromeDriver 148

修正錯誤

  • DOM 存取:修正了在 iframe 內模擬按鈕點擊時發生的當機問題,該 iframe 本身巢狀內嵌於已關閉的陰影根目錄中。先前用於尋找擁有者框架元素 ID 的 JavaScript 無法穿透封閉陰影根;新實作方式會直接使用 f.X.d.Y.e.Z 格式來解析框架 (crrev.com/c/7594919Bug: 469831357)。
  • 安全性:強化 Chrome 引數清除作業,防止可能涉及位置引數插入的安全漏洞 (crrev.com/c/7695604Bug: 494464734)。
  • 測試:在 AddressSanitizer (ASAN) 下執行時,增加 commands_unittestFindElement(s)WhileNavigating 測試的 kImplicitWait 逾時時間。在 ASAN 負擔下,預設的 3 秒逾時不足以讓重試迴圈耗用所有模擬錯誤,導致不穩定 (crrev.com/c/7657276)。

內部變更和重構

ChromeDriver 147

修正錯誤

  • 測試:新增了密封式迴歸測試,驗證 ElementClick 是否正確處理含有重疊元素的不同來源 iframe 點擊,特別是在網站隔離情境中。這可確保點擊不會錯誤地導向嵌入式內容,而是導向可見的疊加層 (crrev.com/c/7261984錯誤:42321834錯誤:42322220)。

內部變更和重構

  • C++ 標準:重新命名網址解碼模式和函式,以符合 Google C++ 樣式指南,並將 DecodeURLMode 變更為 DecodeUrlMode,以及將 DecodeURLEscapeSequences() 變更為 DecodeUrlEscapeSequences() (crrev.com/c/7593238)。導入 url::UrlEscapeDecoder,簡化整個程式碼集中的網址解碼用法 (crrev.com/c/7610180)。從 //chrome 檔案中移除多餘的 build/branding_buildflags.h 包含項目 (crrev.com/c/7595125Bug: 40318405)。從 //chrome 中移除 BUILDFLAG(IS_FUCHSIA) 邏輯,但 ChromeDriver 內除外 (crrev.com/c/5485913Bug: 41481724)。
  • 記憶體安全 (範圍化):解決 ChromeDriver 公用程式中的 UNSAFE_TODO 標記,並將其遷移至以安全範圍為基礎的實作項目 (crrev.com/c/7562602錯誤:435317390)。

ChromeDriver 146

修正錯誤

  • 穩定性:修正 ChromeDriver 當機問題。如果視窗同時關閉 (例如等待導覽完成時),處理指令時可能會發生這個問題。這項修正會取得 WebView 物件的鎖定,防止物件過早遭到捨棄 (crrev.com/c/7257074Bug: 468228355)。
  • 安全性:針對傳入的 WebSocket 連線新增 Origin 標頭檢查,防止潛在的跨來源劫持 (crrev.com/c/7538400Bug: 478783560)。
  • 測試:將 testWebviewDetactedDuringClick 移至不穩定篩選器,在所有執行作業中略過,而不只是無標題模式 (crrev.com/c/7545378錯誤:481485821)。

內部變更和重構

ChromeDriver 145

新功能

  • 測試:更新 run_py_tests.py 測試架構,接受以 inputtextareacontenteditable 元素為目標的不同長度確定性字串測試 (例如 53、101 和 501 個字元)。這項功能可確保在長時間的 send_keys 作業期間不會捨棄任何字元,提供迴歸涵蓋範圍 (crrev.com/c/7221410Bug: 428116078)。
  • 測試:針對 HTML <selectlist> 元素新增特定測試 (crrev.com/c/7420729錯誤:342889200)。

修正錯誤

  • 螢幕截圖:還原元素螢幕截圖的縮放比例,因為 WebDriver 規格並未規定縮放比例,且這與其他螢幕截圖功能不一致 (crrev.com/c/7409603Bug: 42323022)。
  • 測試:更新 ChromeDriver 測試期望值,以符合 DevTools 前端 (crrev.com/c/7408699錯誤:474179501) 中最近導入的正確值 (適用於平台、platformVersion、型號和行動欄位),修正 testClientHintsDeviceNameIPhoneXtestClientHintsDeviceNameIPad 中的失敗情形。

內部變更和重構

ChromeDriver 144

新功能

修正錯誤

  • 目標生命週期:修正錯誤。如果子頁框正在等待指令回應,而父頁框已分離,ChromeDriver 就會停止運作。當父項 WebViewImpl 在指令處理期間遭到鎖定並標示為已分離時,ChromeDriver 現在會明確地以遞移方式分離子項框架 (crrev.com/c/7080912Bug: 438436830)。
  • 視窗管理:針對 ChromeDriver 工作階段停用遭遮蔽視窗的背景作業。這項修正解決了 WebDriver BiDi 的問題,如果瀏覽器錯誤地將視窗視為遭遮蔽並加以節流,測試可能會失敗 (crrev.com/c/7128058Bug: 458027819)。

內部變更和重構

ChromeDriver 143

修正錯誤

  • 穩定性:修正 OverrideNetworkConditions 內的使用後釋放 (UAF) 當機問題。系統會釋出為後續應用程式儲存的原始指標,現在已妥善管理 (crrev.com/c/7047422Bug: 42323833)。
  • 測試:利用 WaitForCondition API 進行更可靠的同步處理,修正不穩定的 Android ChromeDriver 觸控測試 (crrev.com/c/6978928Bug: 42321861)。
  • DSE Prewarm:透過 --disable-features=Prewarm 參數預設停用 ChromeDriver 中的 Prewarm 功能,避免預先暖機的網頁干擾測試執行和目標探索 (crrev.com/c/7007072Bug: 431928370)。

內部變更和重構

  • C++ 標準:在僅使用智慧指標的 //chrome 標頭中,將 ref_counted.h 換成 scoped_refptr.h,提高編譯效率 (crrev.com/c/7080753Bug: 40245294)。已將 GURL 存取子項遷移至 Get* 變數 (例如 GetSpec(),而非 spec()),清楚指出字串分配情形,避免發生意外的效能懲罰 (crrev.com/c/7002119Bug: 448174617)。
  • 測試:使用 ADD_FAILURE() 移除 devtools_client_impl_unittest.cc 中的多餘檢查模式 (crrev.com/c/6998270)。為 crbug.com/413382905 新增迴歸測試 (crrev.com/c/6879417)。

ChromeDriver 142

新功能

  • 診斷:新增 TERMINATION_STATUS_EVICTED_FOR_MEMORY 狀態,主動終止的程序 (為節省記憶體) 與因記憶體不足 (OOM) 錯誤而當機的程序有所不同。目前這項功能與 OOM 異常終止 (顯示悲傷分頁) 的行為相同,但為日後不同的處理方式奠定基礎 (crrev.com/c/6991933錯誤:394092280)。
  • 診斷:在 WebDriver 回應中新增 goog:processID 功能,可傳回電腦版瀏覽器的主要程序 ID。這項變更可讓 ChromeDriver 與 Firefox 的 moz:processID 保持一致,並協助測試平台無障礙 API (crrev.com/c/5825307Bug: 438884256)。
  • 測試:新增支援結構化測試 ID 上傳至 ResultSink,適用於 ChromeDriver 的 Python 整合測試 (crrev.com/c/6916708Bug: 418015486)。

修正錯誤

  • 診斷:修改 ChromeDriver 在正常 Chrome 結束時的行為,不再發出與 user-data-dir 用法相關的混淆通用錯誤訊息。現在會明確指出執行個體已終止,並引導使用者查看 Chrome 擲回特定錯誤的詳細記錄 (crrev.com/c/6977507Bug: 42323434)。
  • 初始化:更新 ChromeDriver 的初始化結構,以繼續與 Selenium WebDriver v4.16.0 的變更內容相容 (crrev.com/c/6630600)。
  • Android:修正舊版 Android (Android 11 以前) 的 CheckAppInstalled,這些版本不支援套件管理工具的 --user cur 旗標 (crrev.com/c/6785949錯誤:433885051)。
  • 測試:修正 IgnoreDuplicateNavs 錯誤覆寫 ChromeDriver 中預設功能切換開關的問題。這項功能已針對 ChromeDriver 工作階段停用,且 Switches::SetFromSwitches 邏輯已修正 (crrev.com/c/6949166錯誤:445332809)。

內部變更和重構

ChromeDriver 141

新功能

  • 測試:新增對 run_wpt_tests.py--enable-per-test-tracing 旗標支援,與 run_web_tests.py 的行為相符。這會從內部 ChromeDriver 緩衝區擷取 JSON 追蹤事件,並將其儲存至測試結果目錄 (crrev.com/c/6820247錯誤:434017035)。

修正錯誤

  • 診斷:防止 ChromeDriver 在傳回 kTabCrashed 錯誤時,列印自己的內部堆疊追蹤記錄。這可避免使用者感到困惑,同時確保記錄檔中仍有轉譯器當機堆疊追蹤記錄 (crrev.com/c/6841669Bug: 395131239)。

內部變更和重構

ChromeDriver 140

修正錯誤

  • 目標選取:修正問題。在 Chrome 啟動時使用 --auto-open-devtools-for-tabs,開發人員工具視窗可能會與主要頁面競爭,爭取成為主要視窗。ChromeDriver 現在會在判斷主要視窗時,明確排除以 devtools:// 為前置字元的目標 (crrev.com/c/6769505Bug: 427908560)。
  • 目標選取:忽略祖先施加的任何 overflow:hidden 剪裁,避免 ChromeDriver 錯誤計算元素的檢視中心點。這項變更可讓計算方式與 WebDriver 規格和其他 PerformActions 情境保持一致 (crrev.com/c/6735230錯誤:42322257)。
  • Android:修正舊版 Android (Android 11 以前) 的 CheckAppInstalled 函式,這些版本不支援套件管理員的 --user cur 旗標 (crrev.com/c/6785949錯誤:433885051)。
  • 測試:修正 DSEPrewarm 功能導致 chromedriver_py_tests 測試套件不穩定的問題。現在,當 CDP 用戶端附加至 ChromeDriver 時,系統會停用預先暖機觸發程序,避免測試期間出現非預期的目標計數 (crrev.com/c/6764274Bug: 423465927Bug: 431928370)。
  • 測試:還原新增至 IdentityDialogController (FedCM 的一部分) 的 ShouldShowAccountsPassiveDialog 函式,這項異動導致回歸 (crrev.com/c/6780413錯誤:425801332)。

內部變更和重構

ChromeDriver 139

修正錯誤

  • 初始化結構:更新 ChromeDriver 初始化結構,以維持與 Selenium WebDriver v4.16.0 更新 (crrev.com/c/6630600) 的相容性。
  • 引數剖析:合併多個 --js-flags 引數 (類似於 --enable-features 的處理方式),而非只採用最後一個提供的引數。這樣一來,傳遞複雜的 V8 標記時,可用性就會提升 (crrev.com/c/6612042Bug: 421941798)。

內部變更和重構

ChromeDriver 138

新功能

  • 螢幕功能管理:更新了可視區域區隔的 ChromeDriver 行為,以符合最近的 CSS 工作群組解決方案:現在使用平放的可摺疊裝置或所有非可摺疊裝置時,一律會傳回含有單一區隔的陣列。這與媒體查詢行為相符,可降低指紋辨識風險 (crrev.com/c/6469455Bug: 414430842)。
  • 偏好設定和本機狀態 (Android):在 Android 裝置上執行 ChromeDriver 時,新增對 localStateprefs 功能的支援。這項功能依賴 ADB,且需要自訂 user-data-dir 標記;目前會使用預設範本初始化狀態 (crrev.com/c/6397155Bug: 406427226)。

修正錯誤

  • 穩定性:修正使用者透過「繼續」按鈕關閉首次執行體驗 (FRE) 對話方塊時,macOS 發生 ChromeDriver 當機的問題。當系統覆寫 kTargetDetached 錯誤狀態,並嘗試存取無效的 WebView 時,就會發生當機問題 (crrev.com/c/6538867錯誤:410599467)。
  • 效能測試:修正 Windows pinpoint 機器上的 crossbench 測試執行器,該執行器會在使用過時的 ../Release_x64 路徑時,錯誤地嘗試找出 ChromeDriver 二進位檔,導致系統改為下載舊版二進位檔,而非使用本機建構 (crrev.com/c/6502134)。--browser=release_x64

內部變更和重構

  • 記憶體安全 (範圍化):以 base::span 取代 WebSocket::OnReadDuringHandshakeWebSocket::OnReadDuringOpen 中未檢查的指標,解決 unsafe-buffer-usage 警告 (crrev.com/c/6557346Bug: 354307328)。移除 chrome/test/chromedriver 中不必要的 #pragma allow_unsafe_buffers pragma,這些 pragma 在其他遷移作業後已不再需要 (crrev.com/c/6503154Bug: 414858406)。
  • C++ 標準:移除 chrome/ 標頭中多餘的 #include "url/gurl.h"#include <queue> 指令,並視需要新增轉送宣告,以縮短編譯時間 (crrev.com/c/6578272crrev.com/c/6570349Bug: 40318405)。
  • API 遷移:將 RSAPrivateKey 遷移至 crypto::PrivateKey,並將 SHA256HashString 遷移至 crypto::Sha256,由於新的金鑰產生 API 不會出錯,因此清除過時的錯誤處理案例 (crrev.com/c/6490294錯誤:372283556)。
  • 測試:在 Compute Pressure API 自動化指令 (CDP 和 testdriver 實作項目) 中新增 OwnContributionEstimate 屬性 (crrev.com/c/6373001錯誤:402033762)。
  • 測試:修正整合測試,簡化斷言,以檢查可視區域區隔是否已清除回預設可視區域大小,藉此在持續整合 (CFT) 機器人上驗證 ClearDisplayFeatures (crrev.com/c/6535067錯誤:417195296)。
  • 測試:延長 Protected Audience WebDriver 測試的逾時時間,解決較慢 CI 機器人上的不穩定問題 (crrev.com/c/6494277)。

ChromeDriver 137

新功能

  • 螢幕功能管理:新增 ChromeDriver 指令,可模擬及清除螢幕功能,並實作 Viewport Segments API (CSS 和 JS) 的自動化需求。開發人員可藉此在雙螢幕或摺疊式裝置上,以程式輔助方式測試摺疊或轉軸情境 (crrev.com/c/6368674錯誤:40137084)。
  • BiDi:根據預設,ChromeDriver 會在隱藏目標中執行 BiDi 對應程式。避免對應工具的 data:, 頁面干擾測試執行和可見度。如要偵錯對應器,用戶端可以傳遞 --debug-bidi-mapper 旗標,在可見的分頁中執行對應器 (crrev.com/c/6441064,還原後重新登陸 crrev.com/c/6433672crrev.com/c/6439633錯誤:402339952)。

修正錯誤

  • BiDi:如果 ChromeDriver 遺失其他 CDP 或 BiDi 工作階段建立的目標,處理 BiDi 指令 (例如 browsingContext.close) 時,就不會誤關整個瀏覽器工作階段。現在會先明確同步處理頂層分頁,再決定是否終止瀏覽器 (crrev.com/c/6440293Bug: 42323838)。
  • BiDi:與上游 WebDriver BiDi 規格保持一致,確保 ChromeDriver 會移除以空字串形式傳遞的 goog:channel 功能,並將其視為缺少管道 (crrev.com/c/6438865Bug: 409282307)。
  • 輸入:更新 ChromeDriver,支援指標移動指令中的分數 (浮點) x 和 y 座標,修正觸控和指標事件失敗或行為異常的問題 (crrev.com/c/6440834Bug: 409684333)。
  • 目標選取:如果停用 PdfOopif 功能,系統會防止在訪客檢視畫面中開啟的 PDF 獨立處理程序 iframe (OOPIF) 滲入頂層目標清單。擴充篩選邏輯,正確排除這些以 chrome-extension:// 為前置字元的目標 (crrev.com/c/6383500Bug: 396611138)。

內部變更和重構

ChromeDriver 136

新功能

  • 瀏覽器生命週期:新增 Chrome 專屬功能 quitGracefully,可強制 ChromeDriver 嘗試正常停止瀏覽器 (使用 Browser.close 或 SIGTERM),而非預設的 SIGKILL。這可讓 rr 等偵錯工具在程序終止前,有時間傾印記錄 (crrev.com/c/6322538,在短暫還原 crrev.com/c/6320536 後,重新登陸 crrev.com/c/6269180錯誤:339644807)。
  • 測試:產生暫時性包裝函式指令碼,將瀏覽器二進位檔加上偵錯工具 (例如 rr) 及其引數的前置字串,藉此將 run_wpt_tests.py --wrapper 引數導入。這項做法可解決 ChromeDriver 無法在 args 處理為切換時直接替換二進位檔的問題 (crrev.com/c/6271108Bug: 339644807)。
  • 測試:在 TranslateEnabledTest 中透過偏好設定啟用翻譯功能,支援 ChromeDriver 管理瀏覽器程序並略過新的 --remote-debugging-port 限制的測試環境 (當 --user-data-dir 為隱含時) (crrev.com/c/6354089Bug: 327797500)。
  • DevTools:新增開發人員工具多實體功能支援,可在 Android 上的另一個視窗中開啟新分頁 (crrev.com/c/6352169錯誤:401269942錯誤:382183406)。

修正錯誤

  • 目標選取:修正問題。停用 PdfOopif 功能後,系統不會從頂層目標清單中,篩除在訪客檢視畫面中開啟的 PDF 程序外 iframe (OOPIF)。篩選器已擴大範圍,納入 chrome-extension 前置字元,解決錯誤並涵蓋建立分頁的 MV3 Chrome 擴充功能 (crrev.com/c/6383500Bug: 396611138)。
  • 目標選取:修正了導致 getWindowHandles() 指令在以封裝的 Chrome 應用程式為目標時失敗並顯示 connection refused 狀態的回歸問題 (crrev.com/c/6317161錯誤:396622746)。

內部變更和重構

ChromeDriver 135

新功能

  • BiDi:更新 BiDi 對應器,在指定 --enable-unsafe-extension-debugging 時繼承 ChromeDriver 權限。這項功能可讓 WebDriver BiDi 用戶端有效測試擴充功能,這些擴充功能通常需要 WebDriver 用戶端擁有的權限 (crrev.com/c/6288627Bug: 393500934)。

修正錯誤

  • 測試:重新啟用並更新先前標示為失敗的幾項 WDSpec 測試的期望值。這項變更會還原通過測試的規格一致性涵蓋範圍 (crrev.com/c/6310420)。

內部變更和重構

  • 清除:從 chrome/test/ 中移除 Lacros 的所有痕跡 (包括 IS_CHROMEOS_LACROS 和相關測試資料),因為 Lacros 即將淘汰,並改用 IS_CHROMEOS (crrev.com/c/6284446錯誤:354842935)。
  • 清除:移除 md5sum 公用程式的所有追蹤記錄,因為該公用程式已由 devil_util 取代,並清除舊版建構依附元件 (crrev.com/c/6309939Bug: 397452007)。
  • C++ 標準:從 ResultCodeIsNormalResultCode() 中移除 chrome:: 命名空間,並將其移至全域命名空間,同時移除過時的 ChromeOS 啟動匯入項目 (crrev.com/c/6196899Bug: 41050580)。
  • 記憶體安全:利用 std::ranges::lower_bound 簡化 ChromeDriver 中的 std::lower_bound 呼叫 (crrev.com/c/6223172Bug:392116519)。為準備日後強制執行,針對最初識別出的不符規定檔案,抑制 unsafe_libc_call 警告 (crrev.com/c/6187925Bug: 390223051)。將 std::to_array 的回傳值標示為 constexpr,以提升安全性並進行編譯時間評估 (crrev.com/c/6298909)。

ChromeDriver 134

新功能

  • 跳轉追蹤因應措施 (DIPS):重新推出 ChromeDriver 對跳轉追蹤因應措施的支援,並使用 RunBounceTrackingMitigations 指令。整合測試已重新架構為使用不同的網頁,確保系統會在執行指令前正確記錄有狀態的跳出。這項功能支援 nav-tracking-mitigations 規格,並在 //chrome 中實作 (crrev.com/c/4935955錯誤:1474656)。(附註:最初是在 crrev.com/c/4873672 中新增,但後來已還原)。
  • BiDi:更新 ChromeDriver,使用帶有 goog: 前置字元的標準 WebDriver BiDi 擴充功能屬性,與上游 chromium-bidi 變更保持一致。不再允許使用舊版 channel 屬性 (crrev.com/c/6179410)。
  • Windows:在 Windows 的 chromedriver.exe 二進位檔中新增版本資源 (crrev.com/c/6114586錯誤:385300323)。

修正錯誤

  • MPArch/Targets:修正回歸問題,在 ChromeOS 上判斷主要目標時,系統會錯誤地探索 Chrome 擴充功能目標 (chrome-extension://) 並附加至該目標,導致後續指令 (例如導覽) 失敗。現在在初始階段會正確略過擴充功能目標 (crrev.com/c/6183202Bug: 385241097)。
  • MPArch/Targets:修正另一項迴歸問題,當擴充功能目標支援功能停用時,系統不會從頂層網頁檢視畫面中正確篩選擴充功能 background_page 的分頁目標 (crrev.com/c/6160774Bug: 385731198)。
  • MPArch/Navigation:修正問題。在 MPArch 啟用期間,分頁可能暫時沒有附加任何有效網頁,導致 ChromeDriver 誤判為錯誤狀態。ChromeDriver 現在會等待分頁取得新網頁並完成導覽,再解析狀態 (crrev.com/c/6177606)。
  • 記錄處理:修正因含有多位元組字元的記錄字串截斷不當,導致 base::Value() 發生 DCHECK 失敗而當機的問題。更新邏輯,改用 UnicodeString 邊界偵測,而非簡單的 std::string 長度檢查,確保程式碼點有效 (crrev.com/c/6210809Bug: 367752739)。
  • 測試:由於最近的 MPArch 重構作業可讓 ChromeDriver 正確執行這些 WPT,因此我們已將大部分與預先算繪相關的 WPT (除了少數有已知 API 問題的 WPT) 從 content_shell 遷移至 headless_shell (crrev.com/c/6168830Bug: 42323502Bug: 366257368)。

內部變更和重構

ChromeDriver 133

新功能

  • 架構:重構 ChromeDriver,支援多頁面架構 (MPArch) 和分頁目標。WebViewImpl 現在會透過 AutoAttach 連線至分頁目標。先前保留頁面的指令現在會尋找分頁下的有效頁面。這項變更可讓您檢查擴充功能背景網頁,現在可透過 enable_extension_targets 功能指定這些網頁 (預設會略過擴充功能目標) (crrev.com/c/5961156Bug: 379767670Bug: 42323502)。修正回歸問題,避免系統將 chrome-extension:// 網址頁面誤認為擴充功能目標;選取項目已還原為僅限 type=background_page (crrev.com/c/6093588Bug: 383141569)。將 enableExtensionTargets 移至 Chrome 選項,而非頂層功能 (crrev.com/c/6093032)。
  • 傳統:重新支援多鍵元素參照。這項未記錄的功能通常用於建立與 W3C 和非 W3C 模式相容的參照,現在已獲得正式支援,並納入整合測試 (crrev.com/c/6063257錯誤:379584343)。

修正錯誤

  • 穩定性:處理 browsingContext.close 指令時,ChromeDriver 不會無限期封鎖。ChromeDriver 現在會使用不同的機制判斷是否需要關閉瀏覽器,因此可以正確處理 beforeunload 提示,不會停滯 (crrev.com/c/6080431Bug: 42323838Bug: 379049702)。
  • 導覽:修正了網址為 about:blank?test 的虛擬頁面會導致停滯的錯誤。現在,用來識別沒有回應的新視窗 (baseURL==about:blankdocumentURL!=about:blank) 的啟發式方法,會正確處理這些查詢字串網址 (crrev.com/c/6038039Bug: 377410086)。
  • 導覽:新增邏輯,以便重試因 AbortedByNavigation 錯誤而失敗的指令。ChromeDriver 現在會先嘗試執行指令數次,然後才會放棄並傳回標準的 Timeout 錯誤 (crrev.com/c/6012427Bug: 42323825)。
  • 診斷:直接透過 NavigationTracker 轉送 kTargetCrashed 錯誤。如果目標在導覽偵測期間當機,系統現在會向使用者顯示這項特定錯誤,而非一般逾時錯誤,有助於改善診斷結果 (crrev.com/c/6032612Bug: 377410086)。
  • Android:修正 chrome_android_impl.cc 中的分頁目標查閱 (crrev.com/c/6110492錯誤:384781876)。
  • 測試:修正 win11-arm64 上多項視窗大小測試的不穩定問題 (例如點選遭遮蔽的元素)。現在,測試會在調整大小作業後重複查詢內部視窗大小,直到正確註冊正向高度為止,以因應視窗重新繪製速度緩慢的問題 (crrev.com/c/6012658Bug: 378470046)。
  • 測試:將一般 Python 連線錯誤對應至 WebSocketConnectionClosedException,簡化錯誤處理 (crrev.com/c/6054134),在預期會立即產生副作用的情況下使用 SendCommand 而非 PostCommand,避免競爭狀況 (crrev.com/c/6054137),並以更可靠的導覽偵測機制取代對 ExecuteScript 立即影響的依賴 (crrev.com/c/6063040Bug: 42323825),修正整合測試中的多個不穩定問題。
  • 測試:還原移除 FedCmIdpSigninStatus 功能旗標的作業,因為移除該旗標會導致中斷 (crrev.com/c/6082405,還原 crrev.com/c/6078693錯誤:384866916錯誤:381211734)。
  • 工具:在 log_replay 指令碼中新增 Print 指令的支援 (crrev.com/c/6010809錯誤:378451938)。

內部變更和重構

ChromeDriver 132

新功能

  • 測試:為 ChromeDriver 整合測試新增 repeatretry-limit 命令列參數的支援,將這些參數對應至標準 isolated-script-test-repeatisolated-script-test-launcher-retry-limit 引數 (crrev.com/c/5938195錯誤:374681919)。對於在本機執行的測試 (非 CI),預設 retry-limit 已變更為 0 (crrev.com/c/5953326Bug: 374681919)。
  • WebSockets:在 EmbeddedTestServer 中實作 WebSocketConnection 和相關類別,讓 WebSocket 相關測試從 SpawnedTestServer 遷移。包括根據通訊協定設定框架,以及簡化處理常式註冊程序 (crrev.com/c/5849732Bug: 40812029)。

修正錯誤

  • 穩定性:修正 ChromeDriver 損毀問題。如果點選指令導致瀏覽器關閉,先前重構作業導入的 kTargetDetached 錯誤狀態可能會導致這個問題 (crrev.com/c/5934524Bug: 42323264)。
  • 穩定性:修正 Mac ARM64 上的 testClickNavigateRemoteToLocal 整合測試間歇性當機問題,方法是解決競爭狀況 (crrev.com/c/5975526Bug: 375971185)。
  • 導覽:修正 GoBackGoForward 指令。先前,如果文件從有效狀態轉換時呼叫 Page.getNavigationHistory (表示導覽正在進行中),這兩個指令就會失敗。ChromeDriver 現在會在此情境中正確重試指令 (crrev.com/c/6011739Bug: 378433873)。
  • 指令碼執行:確保觸發導覽或關閉視窗的指令碼正確傳回標準 ScriptTimeout 錯誤 (如果瀏覽器端無法保證結果),提示使用者避免模稜兩可的測試結構 (crrev.com/c/5934265Bug: 372883701)。
  • 指令碼執行:修正記錄重播功能失敗的問題,並顯示「unexpected command response」錯誤 (crrev.com/c/5961142Bug: 42323342)。
  • 錯誤代碼:修正 ChromeDriver 的錯誤處理機制,不再強制將所有例外狀況 (含「code」屬性) 包裝成一般「javascript error」。這可確保「過時的元素參照」(來自 call_function.js) 和「無效的元素狀態」(來自 Selenium Atoms CLEAR 函式) 等標準錯誤,都能準確傳播給使用者 (crrev.com/c/5937893Bug: 42323409)。GetElementTagName 中改善錯誤處理機制,可將缺少的標記名稱資訊正確解讀為「物件不是元素」(crrev.com/c/5929087)。
  • BiDi:修正使用自訂使用者設定檔時,BiDi 工作階段無法初始化的問題。自訂設定檔載入的頁面可能會導致 BiDiMapper 無法啟動;ChromeDriver 現在會確保第一個分頁一律載入 data:,,為對應器提供乾淨的環境 (crrev.com/c/5960656Bug: 366886096)。
  • 無痕模式:修正一項錯誤,避免 ChromeDriver 在無痕模式下運作時無法建立新分頁 (crrev.com/c/5952980Bug: 42323352)。
  • 測試:修正 testScriptNavigateRemoteToLocal 整合測試中的不穩定問題 (失敗率為 8.33%),並新增 C++ 整合測試,以重現及驗證競爭狀況的修正內容 (crrev.com/c/6010867錯誤:378387680)。
  • 測試:在 Mac (testWindowMinimize) 和 Windows (ChromeDownloadDirTest.testFileDownloadAfterTabInvalidCertificateTest.*) 上,以及全域 (testShadowDomFindElement、元素螢幕截圖測試) 重新啟用先前不穩定的整合測試。暫時將不穩定的 css/css-scrollbars/ WPT 測試從無頭殼層移回內容殼層 (crrev.com/c/5953708crrev.com/c/5948803crrev.com/c/5941351crrev.com/c/5941098crrev.com/c/5959254Bug: 42323825Bug: 40848017Bug: 40736504Bug: 40176424Bug: 40927590)。

內部變更和重構

ChromeDriver 131

新功能

修正錯誤

內部變更和重構

ChromeDriver 130

新功能

內部變更和重構

  • C++ 標準:解決各種類別中的「五項規則」問題。由於 Chrome 樣式外掛程式堅持使用行外解構函式,但未強制使用行外移動建構函式,編譯器會隱含刪除移動運算子,並自動改用副本。已新增這些缺少的宣告 (crrev.com/c/5846757Bug: 364788123)。
  • 測試:將硬式編碼的 chrome 字串替換為實際使用的產品,並從摘要輸出中隱藏詳細的 command 構件,藉此清除 wptrunner 測試結果摘要 (crrev.com/c/5825633Bug: 41494889)。
  • 測試:在 macOS 15 (Mac15) 上,將特定逾時時間加倍,修正 ChromeDriver 整合測試中大量測試失敗的問題,因為這個作業系統上的測試所需時間比 Mac14 長得多。此外,由於不穩定,四項虛擬感應器測試也已加入忽略清單 (crrev.com/c/5817455Bug: 354939744)。
  • 測試:在 Mac 上停用不穩定的 ChromeDriverSiteIsolation.testClickNavigateLocalToLocal 測試 (crrev.com/c/5806894錯誤:361521805),以及在 Windows 11 上停用不穩定的 ChromeDriverTest.testClickElement*ObscuredByScrollBar 測試 (crrev.com/c/5804083錯誤:360058651)。
  • 測試:由於發生多項基礎架構問題,因此移除了 ChromeDriver 接受測試 (會下載舊版 Chrome,以便針對目前的 ChromeDriver 進行測試)。系統可能會在 CI 中透過自動捲動功能重新新增這些項目 (crrev.com/c/5812142Bug: 357737793)。

ChromeDriver 129

新功能

  • BiDi:更新 ChromeDriver 工作階段初始化輔助程式,將 session.new 指令傳送至 BiDi 對應程式,讓對應程式直接處理功能。這是移除 MapperOptions 的第一步 (crrev.com/c/5741432錯誤:356371297)。(附註:由於測試涵蓋率下降,因此提供已處理 unhandledPromptBehavior 的相關變更 crrev.com/c/5754093 已還原 crrev.com/c/5755744)。
  • 運算壓力:新增虛擬壓力來源管理擴充指令,實作運算壓力規格的「自動化」部分。這些指令會經過剖析,並轉送至 CDP 層 (crrev.com/c/5666583錯誤:347031400)。
  • 擴充功能 MV2:更新了運用 MV2 行為的測試,以使用 ScopedTestMV2Enabler,這是持續進行的擴充功能 Manifest V2 淘汰計畫現場測試的一部分 (crrev.com/c/5685054Bug: 339061151)。

修正錯誤

  • 傳統序列化:在 WebDriver Classic 指令碼執行結果中序列化 Set 時,追蹤所見物件,避免無限迴圈並容許覆寫 Array.prototype.includes (crrev.com/c/5765833Bug: 357472850)。(注意:由於 WPT 迴歸,這項變更隨後已還原 crrev.com/c/5773175)。

內部變更和重構

ChromeDriver 128

新功能

  • 功能:允許使用 unhandledPromptBehavior 功能的字典,與標準功能結構保持一致,但 Mapper 尚未完全遵守 (crrev.com/c/5692204crrev.com/c/5682934Bug: 42323841)。
  • 啟動:在 ChromeDriver 中新增 --ignore-explicit-port 命令行引數。這項暫時的解決方法會強制 ChromeDriver 忽略任何明確提供的連接埠,改為尋找並繫結至可用連接埠,解決網頁平台測試執行期間的 TCP 連接埠競爭問題 (預計在 M132 後移除) (crrev.com/c/5724574crrev.com/c/5703976Bug: 42323836)。

修正錯誤

  • 感應器:修正 ExecuteUpdateVirtualSensor 指令,改用 SendCommand() 而非 SendCommandAndGetResult(),因為 setSensorOverrideReadings CDP 指令不會傳回值 (crrev.com/c/5703589)。
  • FedCM:修正 FedCM ChromeDriver 測試中的競爭狀況,不再斷言系統會在實際預期對話方塊時傳回 NoSuchDialog,避免對話方塊顯示過快時發生失敗 (crrev.com/c/5713515錯誤:346530330)。
  • 測試:修正基礎問題 (crbug.com/40233722) 後,重新啟用 Mac 上的 WebAuthn 虛擬驗證器測試 (crrev.com/c/5635806Bug: 329130177)。
  • 錯誤訊息:修正 execute/async 指令錯誤訊息中的錯字 (crrev.com/c/5697913)。

內部變更和重構

ChromeDriver 127

修正錯誤

  • 穩定性:修正 ChromeDriver 當機問題。當開發人員工具用戶端正在處理其他指令時,如果收到 target.detachFromTarget 指令 (或 target.detachedFromTarget 事件),就會發生這個問題。修正後,系統不會過早釋出 WebViewDevToolsClient 物件 (crrev.com/c/5527584錯誤:339773537)。
  • 穩定性:修正了在執行 Switch To Window 指令期間,如果網頁檢視區塊分離,指令可能會錯誤傳回「不明錯誤」的問題。現在,如果目標視窗確實已關閉,系統會正確忽略「找不到網頁檢視區塊」的內部錯誤,並傳回標準的「沒有這類視窗」回應 (crrev.com/c/5583730錯誤:338616700)。
  • 穩定性:確保 ChromeDriver 在更新內部 WebView 清單時,可容許目標分離。如果目標在更新期間卸離,ChromeDriver 現在會重試,而不是傳回非標準錯誤,減少快速建立及銷毀視窗的環境中發生的不穩定情況 (crrev.com/c/5565103Bug: 338616700Bug: 4771)。
  • 導覽:在搜尋元素時,ChromeDriver 新增了等待遠端偵測到導覽的邏輯。這可防止 ChromeDriver 在導覽與元素尋找作業 (crrev.com/c/5563113、還原 crrev.com/c/5563420、重新發布 crrev.com/c/5562089錯誤: 4771) 同時發生時,傳回非標準錯誤或因 DCHECK 而當機。
  • BiDi:修正工作階段建立期間 ChromeDriver 和 BiDiMapper 之間的競爭狀況。ChromeDriver 現在會等待 browsingContext.getTree 指令傳回非空白清單,再結束 NewSession 指令,確保新建立的預設分頁正確註冊 (crrev.com/c/5575497Bug: 341048786Bug: 1503101)。
  • BiDi:修正問題。在工作階段建立後,焦點會停留在 BiDiMapper 背景分頁,而非使用中的使用者分頁。現在系統會明確將焦點授予第一個使用者分頁 (crrev.com/c/5594070Bug: 341048786Bug: 1503101)。
  • BiDi:停止 ChromeDriver 在處理 BiDi 指令 (例如 browsingContext.close) 時嘗試附加目標,避免 CDP 指令在使用者提示開啟時無限期停滯,並將處理作業完全委派給已連線的 BiDi 層 (crrev.com/c/5541915、還原 crrev.com/c/5539818、重新登陸 crrev.com/c/5522393錯誤:4758)。
  • FedCM:修正 fedcm-loginhint.https.html WPT 測試失敗的問題,原因是系統誤將對話方塊標示為已關閉。現在只有在 selectAccount 作業實際成功時,系統才會更新狀態 (crrev.com/c/5398379錯誤:331237776)。
  • 測試:修正字元正好達到 kExtendedASCIIStart 邊界時,JSON 剖析期間發生的 DCHECK 失敗問題 (crrev.com/c/5565276錯誤:40284755)。
  • 測試:使用 iframe 元素做為捲動來源,並將指標移動輸入內容四捨五入為整數,修正 scrollend-event-fires-to-iframe-window.html WPT 測試,避免 ChromeDriver 發生觸控位置為分數的錯誤 (crrev.com/c/5570150Bug: 340956654)。
  • 測試:如果 run_py_tests.py 無法找到瀏覽器二進位檔,ChromeDriver 整合測試會列印嘗試的路徑,藉此改善診斷程序 (crrev.com/c/5604204錯誤:4781)。

內部變更和重構

ChromeDriver 126

新功能

  • BiDi:更新 ChromeDriver,在啟動瀏覽器以進行 WebDriver BiDi 工作階段時提供 --disable-background-timer-throttling 切換,防止背景分頁遭到節流 (crrev.com/c/5515013錯誤:4762)。
  • BiDi:新增 BiDi 對應器支援功能,可在需要詳細記錄時傳送偵錯訊息 (sendDebugMessage)。ChromeDriver 會將這些事件標示為 bidi messages 以進行剖析,但 BidiTracker 目前會忽略這些事件 (crrev.com/c/5465782錯誤:4753)。
  • 傳統版:實作自動接受任何 beforeunload 對話方塊 (快訊),遵守 WebDriver 標準,該標準規定對話方塊絕不能顯示在傳統版工作階段中 (crrev.com/c/5517510錯誤:4757)。

修正錯誤

  • 傳統:移除元素擷取邏輯中多餘的嘗試次數上限限制。現在擷取作業只受隱含逾時限制,可避免作業過早失敗,並錯誤地傳回非標準的 NoSuchExecutionContext 錯誤 (crrev.com/c/5478668Bug: 4379)。
  • 傳統版:修正回歸問題,這個問題會導致 ChromeDriver 在擷取要求使用無效的位置策略時,傳回 javascript error 而非 invalid selector 錯誤 (crrev.com/c/5490662錯誤: 4743)。
  • 傳統:確保 Android 上的視窗指令 (最大化、最小化、全螢幕) 會傳回符合標準的 unsupported operation 錯誤,而不是繼續執行,因為 Android 瀏覽器不支援這些動作 (crrev.com/c/5490224錯誤:4689)。
  • 傳統版:修正 ChromeDriver,使其絕不會傳回 kChromeNotReachable 內部錯誤代碼;現在當 HTTP 用戶端無法連線至瀏覽器時,系統會正確傳回標準 kSessionNotCreated 錯誤 (crrev.com/c/5476390錯誤:4379)。
  • 傳統:修正 ChromeDriver,確保執行視窗指令時不會傳回非標準 kNoSuchExecutionContext 錯誤 (crrev.com/c/5483606Bug: 4379)。
  • 傳統版:從支援的錯誤代碼清單中,移除未使用的 kForbidden 錯誤代碼 (crrev.com/c/5476927錯誤:4379)。
  • BiDi:更新 ChromeDriver,在關閉專屬 Mapper 分頁前提示使用者,與上游 chromium-bidi 變更保持一致 (crrev.com/c/5508600Bug: 4761)。

內部變更和重構

ChromeDriver 125

新功能

  • 裝置姿勢:新增裝置姿勢管理用的 ChromeDriver 指令,支援裝置姿勢規格的「自動化」部分。這樣即可透過擴充功能指令,覆寫硬體設定的裝置姿勢並移除覆寫 (crrev.com/c/5437993Bug: 330376761)。

修正錯誤

  • BiDi:將傳入 BiDi 指令 id 的中繼儲存空間從 Double 變更為 base::Value。這樣可確保 id 會在回應中精確回傳,不會在 JSON 序列化後出現非預期的尾隨小數點或小數部分 (crrev.com/c/5444225錯誤:4676)。
  • FedCM:在 IDP 準備就緒後,重新啟用 ID 聲明端點的 CORS (crrev.com/c/5440132,還原 crrev.com/c/5381316,重新啟用 crrev.com/c/5370086錯誤:40284123)。
  • FedCM:修正對話方塊遭誤標為已關閉的錯誤,確保只有在 selectAccount 指令成功時,對話方塊才會標示為已關閉。這項變更可解決在沒有預期帳戶選擇器時呼叫 selectAccount 導致的測試失敗問題 (crrev.com/c/5398379Bug: 331237776)。避免在不應顯示帳戶選擇器時呼叫 fedcm_get_and_select_first_account,防止觸發這個錯誤 (crrev.com/c/5398800)。
  • 測試:修正 popover-light-dismiss.html WPT 測試中的失敗問題,方法是合併動作序列,並將主要頁框的文件做為 pointerUp 動作的來源,防止 ChromeDriver 在頁框間錯誤地傳送並行 pointerUp 事件 (crrev.com/c/5402096錯誤:325981758)。
  • 測試:修正 wptrunner,將 stderr 輸出內容 (包括使用 --enable-chrome-logs 時寫入的瀏覽器記錄) 正確轉送至 stderr 構件,而非 crash_log,並將包含瀏覽器堆疊追蹤記錄的 Harness 錯誤移至 crash_log (crrev.com/c/5437023錯誤:41494889)。
  • 測試:修正 wptrunner,將瀏覽器記錄檔依 ChromeDriver 程序分組輸出,並將記錄檔導向正確的測試構件,避免在平行測試執行時出現交錯和孤立的記錄檔 (crrev.com/c/5320681錯誤:41494889)。

內部變更和重構

ChromeDriver 124

新功能

  • BiDi:新增建構步驟,在將 BiDiMapper 指令碼嵌入 ChromeDriver 之前先縮減該指令碼,因為來源對應器現在會從 CIPD 下載未縮減的指令碼 (crrev.com/c/5310075錯誤:4226)。
  • WebAuthn:新增 SetCredentialProperties 指令,讓用戶端更新 WebAuthn 憑證的備份旗標 (crrev.com/c/5296389Bug: 40945430)。
  • WebAuthn:透過 WebDriver 將 defaultBackupEligibilitydefaultBackupState 新增至「新增虛擬驗證器」指令,並將 backupEligibilitybackupState 新增至「新增憑證」指令,公開 WebAuthn 備份旗標 (crrev.com/c/5297117Bug: 40945430)。
  • 測試:為 ChromeDriver Python 整合測試新增 --failfast 指令列引數的支援功能,在發生第一個錯誤時停止測試執行,協助進行偵錯 (crrev.com/c/5374546)。
  • 測試:透過 testdriver-vendor.js API 新增對 SetRPHRegistrationMode webdriver 指令的內容殼層支援 (crrev.com/c/5205730錯誤:1359103)。

修正錯誤

  • 穩定性:將逾時到期檢查移至 ChromeImpl::SetWindowBounds 的輪詢和等待迴圈主體內。修正高負載時,逾時可能在第一次迴圈疊代發生前到期的問題 (crrev.com/c/5366899Bug: 4642)。
  • 效能:如果視窗界線尚未達到所需狀態,則只會套用指數輪詢等待時間,藉此縮短 ChromeImpl::SetWindowBounds 中的等待時間,並減少 WPT 設定延遲 (crrev.com/c/5366457錯誤:4642)。
  • 啟動:更新 ChromeDriver,在指定 content_shell 的資料目錄時使用 --user-data-dir 而非 --data-path,與讀取有效開發人員工具通訊埠的方式一致 (crrev.com/c/5226609錯誤:1295373)。

內部變更和重構

ChromeDriver 123

新功能

  • FedCM:顯示單一帳戶按鈕流程的強制回應對話方塊,包括在自動化介面中新增強制回應檢視畫面支援 (crrev.com/c/5231438Bug: 1518356)。
  • FedCM:實作 ChromeDriver 支援功能,可在 FedCM 對話方塊中開啟連結,並將連結視為按鈕,簡化自動化作業 (crrev.com/c/5225543Bug: 1513520)。
  • 感應器:修改 WebDriver 虛擬感應器指令,讀取 Euler 角 (alpha-beta-gamma) 而非四元數,以符合最新的方向感應器規格更新。內部 CDP 和服務層仍會透過轉換步驟使用四元數 (crrev.com/c/5229177Bug: 1506995Bug: 1520912Bug: 1520919)。

修正錯誤

  • 傳統版:修正透過指令碼從不同頁框傳回節點時,會錯誤導致 StaleElementReference 錯誤的問題。現在會正確傳回 JavaScriptError,以符合 WebDriver 標準 (crrev.com/c/5222746Bug: 4668)。
  • 測試:修正 Chrome/ChromeDriver 上失敗的過度捲動事件測試,因為觸控拖曳超出視窗邊界;現在拖曳作業會受到適當限制 (crrev.com/c/5297676錯誤:40832230)。
  • 測試:修正 open-close.https.html MIDI 測試,避免不必要地建構 promise,以免發生未處理的 promise 拒絕,導致 ChromeDriver 無法通過測試 (crrev.com/c/5239869錯誤: 1499775)。
  • 測試:修正 wpt_internal/system-wake-lock/idlharness* 測試中設定的權限集,因為 test_driver.set_permission(...) 錯誤地傳遞 false 而非 nullWindowProxy,導致 ChromeDriver 混淆 (crrev.com/c/5271087錯誤:40287920)。

內部變更和重構

ChromeDriver 122

修正錯誤

  • BiDi:更新了深層節點序列化,納入 loaderId,讓 ChromeDriver 和 BiDi 對應程式能正確參照及取消參照節點,不必進行過多的往返行程 (crrev.com/c/5116240Bug: 1420968)。
  • 功能:更新 ChromeDriver,在啟動時立即將 acceptInsecureCerts 功能傳遞至 BiDi 對應器,避免功能套用時間過晚而導致競爭條件 (crrev.com/c/5125711錯誤:4643)。
  • 傳統:重新架構元素參照產生作業,改用 <frame_id>.<loader_id>.<backend_node_id> 格式;這樣一來,ChromeDriver 就能在框架導覽和 DOM 更新期間,明確區分有效、不明和過時的元素參照 (crrev.com/c/5094519錯誤:4379)。
  • 傳統:修正問題:如果新建立的目標在 ChromeDriver 附加至該目標之前自行關閉 (例如在競爭狀況中),window/handles 指令可能會失敗並顯示「no such window」錯誤 (crrev.com/c/5147409錯誤:1506833)。
  • FedCM:新增內部事件監聽器,在 FedCM 對話方塊關閉時發出通知,避免對話方塊從外部關閉 (例如透過 AbortController.abort) 時,dialogtype 指令傳回過時資料 (crrev.com/c/5067504錯誤:1506292)。
  • FedCM:已從 ClickDialogButton 指令中移除供應商前置字元,因為這項指令已在 FedCM 規格中獲得核准 (crrev.com/c/5092527Bug: 1499341)。

內部變更和重構

  • BiDi:將 BiDi Mapper 依附元件升級至最新版本 (crrev.com/c/5205452錯誤:4226)。
  • 移除從每個 DevToolsEventListener 傳送的多餘 Page.enable 呼叫,減少 ChromeDriver 和 Chrome 開發人員工具通訊協定 (CDP) 的流量,因為 DevToolsClientImpl 已處理每個目標的這項作業 (crrev.com/c/5088789錯誤:4600)。
  • 由於目前尚不完全支援在通訊協定模式下執行測試,且 ChromeDriver 整合作業仍在進行中 (crrev.com/c/5225148Bug: 1474702),因此所有 Wptrunner 建構工具都已變更為實驗狀態。content_shell
  • 略過 content_shell 上需要 window.test_driver_internal.get_computed_role 的測試,因為尚未實作,可避免 TypeError 失敗 (crrev.com/c/5189678Bug: 1517744)。
  • 重新登陸重構,改用與平台無關的 IS_OZONE_{X11, WAYLAND} 標記,而非 OZONE_PLATFORM_* (crrev.com/c/5086329Bug: 1500494)。
  • selenium-atoms 依附元件升級至最新修訂版本 (crrev.com/c/5110808Bug: 4662)。
  • 修正針對完整 Chrome 二進位檔執行時,SnapEvents 測試中的邏輯,方法是將指標移動輸入內容四捨五入、強制執行捲動的 origin 參數,以及使用近似值判斷 (assert_approx_equals) 處理分數捲動/位移差異 (crrev.com/c/5097343)。
  • 新增 StringPrintfNonConstexpr() 輔助程式,在格式字串不是編譯時間常數時,與 StringPrintf() 區別 (crrev.com/c/4950568Bug: 1371963)。
  • 確保 chromium::import! Rust 巨集逸出使用單射函數,避免在產生的 GN 目標名稱中發生衝突 (crrev.com/c/5132119Bug: 1512174)。
  • 在解構函式中新增建構函式和提早回傳,藉此清理 ScopedTempDirWithRetry 實作項目 (crrev.com/c/5113843)。

ChromeDriver 121

新功能

  • 測試:除了建構機器上的標準 Chrome 瀏覽器,現在也支援對 chrome-headless-shell 執行 ChromeDriver 整合測試 (chromedriver_py_test)。包括根據 --browser-name 參數探索瀏覽器二進位檔,以及有條件地執行特定測試集 (crrev.com/c/4995189crrev.com/c/4989442Bug: 4358)。

修正錯誤

  • 穩定性:將預設 KeyboardLayoutEngine 初始化為 StubKeyboardLayoutEngine,避免因 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine 中的 DCHECK 命中而導致 ChromeDriver 損毀 (crrev.com/c/5017859錯誤:4625)。
  • 穩定性:修正不穩定問題,如果用戶端已要求關閉連線,工作階段執行緒要求關閉相同連線時,ChromeDriver 可能會當機 (crrev.com/c/4994636Bug: 4606)。
  • 資源管理:修正 ChromeDriver 整合測試中的資源洩漏問題 (RemoteBrowserTest),確保即使 ChromeDriver 指令擲回例外狀況,瀏覽器程序也會終止 (crrev.com/c/5009554Bug: 4614)。
  • 資源管理:在 ChromeDriver 整合測試中實作邏輯,偵測並終止 ChromeDriver 程序捨棄的任何瀏覽器程序 (crrev.com/c/5014093錯誤:4617)。
  • 啟動:修正 chrome-headless-shell 會傳回空白目標清單的問題,防止工作階段建立,方法是在瀏覽器名稱為 chrome-headless-shell 時,將 data:, 引數附加至瀏覽器指令列 (crrev.com/c/5010392crrev.com/c/5009535Bug: 4615Bug: 4358)。
  • FedCM:新增事件,在 FedCM 對話方塊關閉時通知,確保 dialogtype 和其他指令不會在對話方塊從外部關閉 (例如透過 AbortController.abort) 時傳回過時資料 (crrev.com/c/5067504錯誤:1506292)。
  • 測試:修正並重新啟用先前在 Windows 上為 chrome-headless-shell 停用的所有 ChromeDriver 整合測試 (crrev.com/c/5027594錯誤:4358)。
  • 測試:為符合 WebDriver 標準,已在 testElementRegionTest 中放寬過於嚴格的斷言,解決瀏覽器轉譯特殊性造成的不可靠問題 (crrev.com/c/5017865錯誤:4526)。

內部變更和重構

ChromeDriver 120

新功能

  • BiDi:新增 session.newsession.end 指令的支援功能,讓使用者可透過 BiDi 指令直接建立及終止工作階段 (crrev.com/c/4941941錯誤:4496)。
  • BiDi:新增支援 session.status PureBiDi 指令,讓使用者建立未繫結任何工作階段的 WebSocket 連線,並擷取工作階段狀態 (crrev.com/c/4938596錯誤:4496)。(在 crrev.com/c/4922097 中還原後重新登陸)
  • BiDi:調升 BiDi 對應器依附元件,並配合新的簡化對應器執行程序 (crrev.com/c/4952609錯誤:4226)。
  • 感應器:在 browser_protocol.pdl 和 CDP 層 (模擬網域) 中導入虛擬感應器指令,並支援通用感應器規格的「自動化」部分 (crrev.com/c/4770864錯誤:1278377)。
  • 感應器:新增虛擬感應器管理用的 ChromeDriver 擴充功能指令,將 WebDriver 參數轉換為新的 CDP 呼叫 (crrev.com/c/4770866Bug: 1278377)。
  • 感應器:新增透過 testdriver.js 操控虛擬感應器的 content_shell 程式碼路徑,完全略過網頁測試的 ChromeDriver (crrev.com/c/4770865Bug: 1278377)。
  • 追蹤緩解措施:新增對跳轉追蹤緩解措施 (DIPS) 的 ChromeDriver 支援,可自動執行 nav-tracking-mitigations 規格 (crrev.com/c/4873672錯誤:1474656)。(注意:由於 crrev.com/c/4938394 的 Mac 測試失敗,這項功能暫時還原)

修正錯誤

  • 啟動:在 ChromeDriver 中新增 Headless Shell 探索功能,以便在透過功能要求 chrome-headless-shell 二進位檔,但未提供明確路徑時,搜尋該二進位檔 (crrev.com/c/4987262Bug: 4358)。(在 crrev.com/c/4984449 中還原後重新登陸)
  • WebSockets:實作 WebSocket 關閉握手的部分支援,確保 ChromeDriver 在收到遠端傳送的 CLOSE 頁框時會做出回應 (crrev.com/c/4931500錯誤: 4499)。
  • 權限:公開 options.disclaim_responsibility 做為建構旗標,允許供應商建構 (例如 Microsoft Teams) 關閉此旗標,避免 macOS 權限提示導致測試自動化停滯 (crrev.com/c/4929495錯誤:1223643)。
  • C++ 標準相容性:新增範圍檢查,修正 UBSan 偵測到的未定義行為 (UB),也就是將超出範圍的 double 轉換為 int 時發生的問題 (crrev.com/c/4980055錯誤: 1394755)。
  • FedCM:移除舊版標頭語法的支援,確保符合標準 login-status-http 語法 (crrev.com/c/4957073錯誤:1381501)。

內部變更和重構

ChromeDriver 119

新功能

修正錯誤

  • 行動裝置模擬:修正問題。如果預先定義的裝置沒有用戶端提示 (例如舊版設定),系統會填入合理的預設值,導致裝置無法正常運作 (crrev.com/c/4887254錯誤:4550)。
  • 傳統:修正 MapSet 物件的序列化問題,現在這些物件會正確序列化為 Object,而非 Collection,因為這些物件缺少 length 屬性 (crrev.com/c/4881378Bug: 4031)。
  • 傳統:恢復一律在測試期間下載並使用最新相容版 ChromeDriver 的邏輯,只有在發生相容性問題時才改用特定版本 (crrev.com/c/4779613,還原 crrev.com/c/4778973)。
  • FedCM:將 Signin 重新命名為 Login (confirmidplogin),藉此標準化瀏覽器自動化指令,與最新的 FedCM 規格討論內容保持一致 (crrev.com/c/4901302Bug: 1451884)。
  • 測試:修正了在停用第三方 Cookie 時,導致 FedCM 測試失敗的問題,方法是在測試執行期間明確啟用 IDP 登入狀態 API (crrev.com/c/4889802Bug: 1484833)。
  • 測試:在測試執行器中,將無效的網址預留位置 ~NOTFOUND 替換為 ^NOTFOUND,以符合即將實施的 Chromium 網址標準變更 (crrev.com/c/4845589錯誤:1416013)。

內部變更和重構

  • BiDi:將 BiDi Mapper 依附元件更新至 0.4.27 版,導入最新修正和功能 (crrev.com/c/4862031crrev.com/c/4890322)。
  • 為提升安全性和便利性,已將 //url 中的多個指標/長度 API 替換為 std::string_view (crrev.com/c/4897456)。
  • generateWebDriverValue 公用程式已改用 BiDi 協定 (crrev.com/c/4889644) 原生提供的深度序列化選項 (serializationOptions.serialization: deep)。
  • 新增整合測試,確認在過時的元素參照下搜尋時,系統會正確傳回「過時的元素參照」錯誤 (crrev.com/c/4886793錯誤:4440)。
  • 改善 call_function.js 中的程式碼樣式格式 (crrev.com/c/4882511Bug: 4031)。
  • 透過 WebSockets 連線時,明確告知使用者系統支援管道,且建議使用管道以提升可靠性和安全性,加強使用者意見回饋 (crrev.com/c/4882626錯誤:3480)。
  • 更新 WPT 套件設定,以封存 results.html 測試,提供更優質的 UI 來查看結果 (crrev.com/c/4873223)。webdriver_tests_suite
  • 將 WebView WebContents 標示為 popup_page,並將開發人員工具類型設為 popup_page,而非 other,修正開發人員工具與 WebView 的整合問題 (crrev.com/c/4842093)。
  • 為保持一致性,將 WPT 建構目標 chrome_wpt 重新命名為 chrome_wpt_tests,並移除多餘的 webdriver_wpt_tests 目標 (crrev.com/c/4847474錯誤:1474702)。
  • 已將 run_py_tests.py 從已淘汰的 optparse 程式庫遷移至 argparse (crrev.com/c/4849411錯誤:4557)。

ChromeDriver 118

新功能

  • 整合測試:為 ChromeDriver 導入 C++ 整合測試,可針對實際 CDP 流量測試特定類別,填補單元測試和 Python 整合測試之間的落差 (crrev.com/c/4707855錯誤:4528)。
  • Crossbench:更新 crossbench 依附元件,進行多項改善,包括新增電源基準測試故事、提升平台和裝置支援、強化偵錯功能,以及修正各種問題 (crrev.com/c/4803743)。

修正錯誤

  • 功能:修正了預設設定中缺少 debuggerAddress 的問題,現在會正確傳回,以支援 Selenium 的 CDP 型 BiDi 通訊 (crrev.com/c/4789068錯誤: 4533)。
  • 功能:確保 ChromeDriver 會傳回 WebDriver 規格 (crrev.com/c/4797735錯誤:4548) 要求的標準 platformName 值 (例如「linux」、「windows」、「mac」)。

內部變更和重構

  • 已遷移 MockSocket 中的程式碼,優先使用 base::span<> 而非原始指標,以提升安全性 (crrev.com/c/4832086)。
  • 已移除 base::raw_ptrbase::raw_ref 的淘汰用法,改用透過自動清除作業 (crrev.com/c/4773481) 取得的不合格形式 raw_ptrraw_ref
  • 暫時還原一項變更,這項變更一律會使用最新版 ChromeDriver,因為這項變更導致 Windows 穩定版/Beta 版管道發生當機問題 (crrev.com/c/4778973,還原 crrev.com/c/4777430)。
  • 調整 WPT (Web Platform Tests) 設定,包括在 pointer_touch.py 中抑制僅限偵錯的失敗,以及為封閉框架實作瀏覽器端焦點驗證 (crrev.com/c/4844810crrev.com/c/4572517)。
  • 為符合 IWYU 規範,在 client_hints.h 中新增缺少的 #include <vector> (crrev.com/c/4767547)。
  • 將 Apple 專屬基本型別 (ScopedTypeRefScopedCFTypeRefscoped_nsautorelease_pool) 遷移至 base::apple:: 命名空間,並為 Crashpad 留下暫時轉送標頭 (crrev.com/c/4799213crrev.com/c/4790744crrev.com/c/4790741crrev.com/c/4784010)。

ChromeDriver 117

新功能

修正錯誤

  • 穩定性:修正導致 ChromeDriver 異常終止的空指標存取問題,進而解決測試執行期間發生的 ConnectionRefused 錯誤 (crrev.com/c/4675633錯誤:1457101)。
  • 導覽:修正 Chrome 在導覽期間發生 NoSuchExecutionContextNoSuchWindow 錯誤時,未統一處理的問題;現在這兩種錯誤都會正確對應至重試作業 (crrev.com/c/4667156錯誤:4459)。
  • 行動裝置模擬:修正 clientHints.mobile 的推論邏輯,現在會從 Android 上的 userAgent 正確推論,並在其他平台上預設為 false,修正平板電腦錯誤回報為行動裝置的問題 (crrev.com/c/4649348錯誤:4243)。
  • 工作階段建立:更新工作階段建立程序,確保失敗時會正確傳回標準 SessionNotCreated 錯誤代碼,嚴格遵守 W3C WebDriver 規格 (crrev.com/c/4638223Bug: 4379)。注意:這項變更隨後已還原,因為某些特定程式碼路徑需要不同的錯誤代碼 (crrev.com/c/4651188)。

內部變更和重構

  • 由於 ChromeDriver 現在已完全整合至 Chrome 發布程序,並可透過 Chrome for Testing 基礎架構取得 (crrev.com/c/4520687錯誤:4142),因此我們已淘汰手動 ChromeDriver 發布程序指令碼。
  • 遷移 WPT (Web Platform Tests) 基礎架構,改用官方 wptrunner 測試架構,而非自訂 run_webdriver_tests.py,大幅提升執行速度和可靠性,並確保 ChromeDriver 在測試之間重新產生,以隔離當機問題 (crrev.com/c/4723147crrev.com/c/4676070crrev.com/c/4639168)。
  • 大幅重構 ChromeLauncher 和相關類別,支援轉換至管道、鬆綁與 DevToolsHttpClient 的耦合,並將 WebSocket 邏輯移至專用分支版本 (crrev.com/c/4632801crrev.com/c/4674345)。
  • 將容易誤導的 BrowserInfo.is_headless 欄位重新命名為 BrowserInfo.is_headless_shell,為求明確 (crrev.com/c/4650452錯誤:4358)。
  • 在整個程式碼集區中,以現代的 base::Value::Dict 對等項目 (例如 FindDouble()Set()size()) 取代各種已淘汰的 base::Value 方法 (crrev.com/c/4258936crrev.com/c/4336805crrev.com/c/4461067)。112.0.5603.0、113.0.5653.0、114.0.5733.0
  • 移除 [w]ctype.h 的使用,改用更安全的基礎字串公用程式,並實作 base::expected 的新功能 (crrev.com/c/4749459crrev.com/c/4755226)。
  • TestDriver 中為 FedCM WPT 實作 get_fedcm_dialog_titleselect_fedcm_account 自動化指令 (crrev.com/c/4618303)。
  • 更新 BiDi 對應器建構指令碼,無論目前的工作目錄為何,都能正常運作 (crrev.com/c/4670550)。
  • 在 macOS 建構作業中,將 /chrome/test/chromedriver 檔案轉換為使用 ARC (自動參照計數),並新增必要的樣板 (crrev.com/c/4663602)。
  • 我們嘗試透過自動橡皮章提交,預設停用管道通訊,但這項變更只觸及設定,並未改變先前導入的預設管道核心行為 (crrev.com/c/4683947)。

ChromeDriver 116

新功能

  • FedCM:新增一項功能,讓用戶端不必執行 FedCM 指令,即可檢查 ChromeDriver 是否支援這些指令,並擷取錯誤 (crrev.com/c/4624924Bug: 1356159)。
  • 測試:啟用測試視窗重複使用功能,以便透過 ChromeDriver 在 wptrunner 中執行 testharness 測試,評估這項功能對效能和不穩定性的影響 (crrev.com/c/4515180錯誤:1394572)。

修正錯誤

  • 符合 C++ 標準:修正因在格式字串中直接使用範圍列舉 (enum class) 而導致的未定義行為,解決新的 Clang 編譯器警告 (crrev.com/c/4628112Bug: 1456289)。
  • FedCM:修正導致測試不穩定的潛在原因,解決導致 setdelayenabled 無法正常運作的極端情況 (crrev.com/c/4606064Bug: 1453412)。

內部變更和重構

  • BiDi:調升 BiDi 對應器依附元件,並更新建構指令碼,預設從「main」提取最新修訂版本 (crrev.com/c/4615087crrev.com/c/4615791錯誤:4226)。
  • ChromeDriver 現在會明確使用 UTF-8 編碼開啟及寫入所有檔案 (crrev.com/c/4614522)。
  • 重構 ChromeImpl,消除對 DevToolsHttpClient 的依附元件,並減少 SyncWebSocketFactoryBrowserInfo 的用量,為透過管道而非 WebSocket 通訊做好準備 (crrev.com/c/4571690crrev.com/c/4571199Bug: 3480)。
  • 移除了已淘汰的圍欄頁框「預設模式」,並更新相關測試,以啟用新的功能旗標,繼續遷移至 FLEDGE 競價 (crrev.com/c/4558645)。
  • 將一般 WaitForCondition 判斷式替換為 assertTrue,清楚指出發生逾時的情況,藉此改善 FedCM 測試 (crrev.com/c/4590211)。
  • linux-rel 單元測試中,標示已知的不可靠懸空 raw_ptr 警告 (crrev.com/c/4598070)。
  • 更新 BiDi 對應程式的 OWNERS 檔案 (crrev.com/c/4614518)。

ChromeDriver 115

新功能

  • 行動裝置模擬:在行動裝置模擬中導入使用者代理程式用戶端提示支援,讓 ChromeDriver 能夠從功能和預設值剖析用戶端提示,並傳遞至 Chrome (crrev.com/c/4498667crrev.com/c/4466129錯誤:4243)。
  • 行動裝置模擬:更新行動裝置模擬預設值,在使用者代理程式中取代 %s 格式字串時,改用主機瀏覽器的主要版本,而非 ChromeDriver 版本 (crrev.com/c/4502850Bug: 4243)。
  • 設定:新增支援下載特定管道的 ChromeDriver 版本,改善 ChromeDriver 在不同平台 (例如 Android/WebView) 上執行的自動化情境,而非主機 (crrev.com/c/4550281)。116.0.5791.0

修正錯誤

  • 傳統版:修正了無法解析節點時,系統會錯誤傳回 UnknownError,而非標準 NoSuchElement 錯誤的問題 (crrev.com/c/4508952錯誤:4440)。
  • 行動裝置模擬:在行動裝置模擬預設集中新增更嚴格的斷言,強制執行以下規則:如果 userAgent 字串包含「Mobile」,則 clientHints.mobile 旗標必須為 true (crrev.com/c/4507142錯誤:4243)。
  • 行動裝置模擬:已將 DeviceMetrics 覆寫項目遷移至使用 Emulation.setDeviceMetricsOverride CDP 指令,而非已淘汰的 Page 網域對等項目 (crrev.com/c/4502614Bug: 4243)。

內部變更和重構

ChromeDriver 114

新功能

  • 傳統:將 MobileDevice 資訊傳遞至 MobileEmulationOverrideManager,為日後的用戶端提示和 UserAgent 覆寫作業奠定基礎 (crrev.com/c/4447524)。
  • 測試:為 ChromeDriver 新增測試固定裝置 (crrev.com/c/4459939)。

修正錯誤

  • 無頭:修正新無頭模式中的異常終止問題,方法是忽略指令碼列印預覽要求 (例如 window.print()),使行為與舊無頭模式一致 (crrev.com/c/4436313錯誤:4385)。
  • 功能:修正 ChromeDriver 功能中的 use-after-move 錯誤 (crrev.com/c/4462094錯誤:4243)。
  • DevTools:移除了 DevToolsClientImpl::SendCommandInternal 中的 DCHECK,避免開發人員工具連線中斷時發生當機情形,因為這並非不變量違規事項 (crrev.com/c/4370486錯誤:4385)。

內部變更和重構

ChromeDriver 113.0.5672.63

支援 Chrome 113 版

  • 解決問題 4205:傳統版和 BiDi 中的物件 ID 相同 [Pri-1]
  • 已解決問題 4302:請勿假設 Mapper 位於 ExecuteGetWindowHandles 的第一個分頁中 [Pri-1]
  • 解決問題 4356:Chrome 110 未使用偏好設定值「download.default_directory」[Pri-1]

詳情請參閱版本資訊

ChromeDriver 113.0.5672.24

支援 Chrome 113 版

  • 解決問題 4205:傳統版和 BiDi 中的物件 ID 相同 [Pri-1]
  • 已解決問題 4302:請勿假設 Mapper 位於 ExecuteGetWindowHandles 的第一個分頁中 [Pri-1]
  • 解決問題 4356:Chrome 110 未使用偏好設定值「download.default_directory」[Pri-1]

詳情請參閱版本資訊

ChromeDriver 112.0.5615.49

支援 Chrome 112 版

  • 解決問題 3517:為非無頭 [Pri-] 啟用列印功能
  • 解決問題 4419:使用 chromedriver 時,Speedometer 的負荷過大 [Pri-3]

詳情請參閱版本資訊

ChromeDriver 112.0.5615.28

支援 Chrome 112 版

  • 已解決問題 4357:Chromedriver 110.0.5481.77 版在搭配 --headless 和 --user-data-dir 選項時,工作階段會發生問題。[Pri-1]

詳情請參閱版本資訊

ChromeDriver 111.0.5563.64

支援 Chrome 111 版

  • 已解決問題 4216:使用自訂 BiDiMapper 執行 ChromeDriver [Pri-]
  • 解決問題 4300:視窗控制代碼可在傳統版和 BiDi 之間互通 [Pri-]
  • 解決問題 4325:call_function.js 的 jsonSerialize 中 toJSON 的處理方式與標準不同。[Pri-]
  • 解決問題 4330:DCHECK 在 DevToolsClientImpl::AddListener 失敗 [Pri-]
  • 已解決問題 4357:使用 --headless 和 --user-data-dir 選項時,ChromeDriver 工作階段發生問題 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 111.0.5563.41

支援 Chrome 111 版

  • 已解決問題 4357:使用 --headless 和 --user-data-dir 選項時,ChromeDriver 工作階段發生問題 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 111.0.5563.19

支援 Chrome 111 版

  • 已解決問題 4216:使用自訂 BiDiMapper 執行 ChromeDriver [Pri-]
  • 解決問題 4300:視窗控制代碼可在傳統版和 BiDi 之間互通 [Pri-]
  • 解決問題 4325:call_function.js 的 jsonSerialize 中 toJSON 的處理方式與標準不同。[Pri-]
  • 解決問題 4330:DCHECK 在 DevToolsClientImpl::AddListener 失敗 [Pri-]

詳情請參閱版本資訊

ChromeDriver 110.0.5481.77

支援 Chrome 110 版

  • 已解決問題 4193:無法在 Android 13 上啟動新工作階段 [Pri-]
  • 解決問題 4272:WebSocket 應將 code=0 視為 FIN 的指標 [Pri-]
  • 解決問題 4276:修正 ChromeDriver 中的連線問題 [Pri-]
  • 解決問題 4295:ChromeDriver with "webSocketUrl": true is racy [Pri-]
  • 解決問題 4297:ChromeDriver Bidi 序列化錯誤 [Pri-]

詳情請參閱版本資訊

ChromeDriver 110.0.5481.30

支援 Chrome 110 版

  • 已解決問題 4193:無法在 Android 13 上啟動新工作階段 [Pri-]
  • 解決問題 4272:WebSocket 應將 code=0 視為 FIN 的指標 [Pri-]
  • 解決問題 4276:修正 ChromeDriver 中的連線問題 [Pri-]
  • 解決問題 4295:ChromeDriver with "webSocketUrl": true is racy [Pri-]
  • 解決問題 4297:ChromeDriver Bidi 序列化錯誤 [Pri-]

詳情請參閱版本資訊

ChromeDriver 109.0.5414.74

支援 Chrome 109 版

  • 解決問題 4179:BiDi 工作階段必須支援多個連線 [Pri-]
  • 已解決問題 4203:改善抵免額資訊 [Pri-]
  • 解決問題 4263:按下 Meta+A 時會當機 [Pri-]

詳情請參閱版本資訊

ChromeDriver 109.0.5414.25

支援 Chrome 109 版

  • 解決問題 4179:BiDi 工作階段必須支援多個連線 [Pri-]
  • 已解決問題 4203:改善抵免額資訊 [Pri-]
  • 解決問題 4263:按下 Meta+A 時會當機 [Pri-]

詳情請參閱版本資訊

ChromeDriver 108.0.5359.71

支援 Chrome 108 版 詳情請參閱版本資訊

ChromeDriver 108.0.5359.22

支援 Chrome 108 版

  • 解決問題 4204:修正失敗的 WPT test_top_level_and_one_child [Pri-]
  • 已解決問題 4215:將 chromedriver_mac64_m1 建構版本重新命名為 chromedriver_mac_arm64 [Pri-]
  • 解決問題 4221:點選指令關閉瀏覽器時發生當機情形 [Pri-]

詳情請參閱版本資訊

ChromeDriver 107.0.5304.62

支援 Chrome 107 版

詳情請參閱版本資訊

ChromeDriver 107.0.5304.18

支援 Chrome 107 版

  • 解決問題 4180:禁止處理任何 BiDi 指令,直到收到 BiDiMapper 已啟動的通知為止 [Pri-]
  • 解決問題 4198:ChromeDriver BiDi 不應假設 BiDiMapper 一律位於第一個分頁中 [Pri-]
  • 解決問題 4207:執行 WPT 時發生 WebDriver 錯誤 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 106.0.5249.61

支援 Chrome 106 版

詳情請參閱版本資訊

ChromeDriver 106.0.5249.21

支援 Chrome 106 版

  • 已解決問題 4016:在 ChromeDriver (以對應器為基礎) 中新增基本 BiDi 支援 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 105.0.5195.52

支援 Chrome 105 版

詳情請參閱版本資訊

ChromeDriver 105.0.5195.19

支援 Chrome 版本

詳情請參閱版本資訊

ChromeDriver 104.0.5112.79

支援 Chrome 104 版

詳情請參閱版本資訊

ChromeDriver 104.0.5112.29

支援 Chrome 104 版

  • 解決問題 4121:WebDriver 指令有時會失敗,並顯示「unexpected command response」[Pri-1]

詳情請參閱版本資訊

ChromeDriver 104.0.5112.20

支援 Chrome 104 版

  • 解決問題 4121:WebDriver 指令有時會失敗,並顯示「unexpected command response」[Pri-1]

詳情請參閱版本資訊

ChromeDriver 103.0.5060.134

支援 Chrome 103 版

  • 解決問題 4048:目標影格已分離 [Pri-]
  • 解決問題 4121:WebDriver 指令有時會失敗,並顯示「unexpected command response」[Pri-1]

詳情請參閱版本資訊

ChromeDriver 103.0.5060.53

支援 Chrome 103 版

  • 解決問題 4048:目標影格已分離 [Pri-]

詳情請參閱版本資訊

ChromeDriver 103.0.5060.24

支援 Chrome 103 版

詳情請參閱版本資訊

ChromeDriver 102.0.5005.61

支援 Chrome 102 版

  • 解決問題 1309282:chromedriver 不支援多值切換 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 102.0.5005.27

支援 Chrome 102 版

  • 解決問題 1309282:chromedriver 不支援多值切換 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 101.0.4951.41

支援 Chrome 101 版

  • 解決問題 4046:附加空白圍欄頁框時發生 DCHECK [Pri-]
  • 解決問題 4080:切換至巢狀影格失敗 [Pri-]

詳情請參閱版本資訊

ChromeDriver 101.0.4951.15

支援 Chrome 101 版

  • 解決問題 4046:附加空白圍欄頁框時發生 DCHECK [Pri-]
  • 解決問題 4080:切換至巢狀影格失敗 [Pri-]

詳情請參閱版本資訊

ChromeDriver 100.0.4896.60

支援 Chrome 100 版

  • 解決問題 4002:支援設有圍欄的影格 [Pri-]

詳情請參閱版本資訊

ChromeDriver 100.0.4896.20

支援 Chrome 100 版

  • 解決問題 4002:支援設有圍欄的影格 [Pri-]

詳情請參閱版本資訊

ChromeDriver 99.0.4844.51

支援 Chrome 99 版

詳情請參閱版本資訊

ChromeDriver 99.0.4844.35

支援 Chrome 99 版

  • REVERTED!!! 解決問題 2269:無法使用非 BMP 字元 (U+FFFF 以上的程式碼指標) [Pri-3]
  • 解決 Chromium 問題 1295243:ChromeDriver sendKeys 發生回歸 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 99.0.4844.17

支援 Chrome 99 版

詳情請參閱版本資訊

ChromeDriver 98.0.4758.102

支援 Chrome 98 版

  • 解決問題 3933:在沒有錯誤的情況下,點選檢視區塊邊緣無效 [Pri-]
  • REVERTED!!! 解決問題 2269:無法使用非 BMP 字元 (U+FFFF 以上的程式碼指標) [Pri-3]
  • 解決 Chromium 問題 1295243:ChromeDriver sendKeys 發生回歸 [Pri-1]

詳情請參閱版本資訊

ChromeDriver 98.0.4758.80

支援 Chrome 98 版

  • 解決問題 3933:在沒有錯誤的情況下,點選檢視區塊邊緣無效 [Pri-]
  • 解決問題 2269:無法使用非 BMP 字元 (U+FFFF 以上的程式碼指標) [Pri-3]

詳情請參閱版本資訊

ChromeDriver 98.0.4758.48

支援 Chrome 98 版

  • 解決問題 3933:在沒有錯誤的情況下,點選檢視區塊邊緣無效 [Pri-]
  • 解決問題 2269:無法使用非 BMP 字元 (U+FFFF 以上的程式碼指標) [Pri-3]

詳情請參閱版本資訊

ChromeDriver 97.0.4692.71

支援 Chrome 97 版

  • 解決問題 3878:改善元素點擊的分數元素座標處理方式 [Pri-]

詳情請參閱版本資訊

ChromeDriver 97.0.4692.36

支援 Chrome 97 版

  • 解決問題 3878:改善元素點擊的分數元素座標處理方式 [Pri-]

詳情請參閱版本資訊

ChromeDriver 97.0.4692.20

支援 Chrome 97 版

  • 解決問題 3878:改善元素點擊的分數元素座標處理方式 [Pri-]

詳情請參閱版本資訊

ChromeDriver 96.0.4664.45

支援 Chrome 96 版

  • 解決問題 3445:無法存取 shadow root 內 iframe 中的元素 [Pri-3]

詳情請參閱版本資訊

ChromeDriver 96.0.4664.35

支援 Chrome 96 版

  • 解決問題 3445:無法存取 shadow root 內 iframe 中的元素 [Pri-3]

詳情請參閱版本資訊

ChromeDriver 96.0.4664.18

支援 Chrome 96 版

  • 解決問題 3445:無法存取 shadow root 內 iframe 中的元素 [Pri-3]

詳情請參閱版本資訊

ChromeDriver 95.0.4638.69

支援 Chrome 95 版

  • 已解決問題 3857:指定的主機標頭或來源標頭不在許可清單或 localhost 中 [Pri-1]
  • 新增 --allowed-origins 引數

詳情請參閱版本資訊

ChromeDriver 95.0.4638.54

支援 Chrome 95 版

  • 已解決問題 3857:指定的主機標頭或來源標頭不在許可清單或 localhost 中 [Pri-1]
  • 新增 --allowed-origins 引數

詳情請參閱版本資訊

ChromeDriver 95.0.4638.17

支援 Chrome 95 版

  • 已解決問題 3857:指定的主機標頭或來源標頭不在許可清單或 localhost 中 [Pri-1]
  • 新增 --allowed-origins 引數

詳情請參閱版本資訊

ChromeDriver 95.0.4638.10

支援 Chrome 95 版

  • 已解決問題 3857:指定的主機標頭或來源標頭不在許可清單或 localhost 中 [Pri-1]
  • 新增 --allowed-origins 引數

詳情請參閱版本資訊

ChromeDriver 94.0.4606.113

支援 Chrome 94 版

詳情請參閱版本資訊

ChromeDriver 94.0.4606.61

支援 Chrome 94 版

詳情請參閱版本資訊

ChromeDriver 94.0.4606.41

支援 Chrome 94 版

詳情請參閱版本資訊

ChromeDriver 93.0.4577.63

支援 Chrome 93 版

詳情請參閱版本資訊

ChromeDriver 93.0.4577.15

支援 Chrome 93 版

詳情請參閱版本資訊

ChromeDriver 92.0.4515.107

支援 Chrome 92 版

詳情請參閱版本資訊

ChromeDriver 92.0.4515.43

支援 Chrome 92 版

  • 已解決問題 3389:驗證 ChromeDriver 要求的主機

詳情請參閱版本資訊

ChromeDriver 91.0.4472.101

支援 Chrome 91 版

  • 已解決問題 1205107:無法取得網頁應用程式欄位的屬性值。

詳情請參閱版本資訊

ChromeDriver 91.0.4472.19

支援 Chrome 91 版

  • 解決問題 3744:連結導覽後,SendKeys() 和 Click() 會無聲無息地失敗
  • 已解決問題 3746:屬性端點錯誤地更新值

詳情請參閱版本資訊

ChromeDriver 90.0.4430.24

支援 Chrome 90 版

  • 解決問題 3708:GetElementLocation 的 inView 屬性在 shadow DOM 中對元素失敗
  • 已解決問題 3721:啟用時收集 Service Worker 的效能記錄
  • 解決問題 3731:在非標準 Android OS (例如 OnePlus) 上,AdbImpl::GetPidByName 無法正常運作
  • 解決問題 3733:本機主機上的網域發生嚴重故障
  • 解決問題 3734:驅動程式應在嘗試於錯誤網域上設定 Cookie 時發生錯誤
  • 解決問題 3743:重構呼叫函式並修正移除元素問題

詳情請參閱版本資訊

ChromeDriver 89.0.4389.23

支援 Chrome 89 版

  • 已解決問題 3667:接收來自算繪器的訊息時逾時
  • 解決問題 3675:GetElementLocation 使用 inView 方法,但會將布林值誤認為陣列
  • 解決問題 3682:GetElementRegion 會針對部分超出可視區域的元素傳回錯誤大小
  • 已解決問題 3690:如果擴充功能使用 chrome.windows API,ChromeDriver 會失敗

詳情請參閱版本資訊

ChromeDriver 88.0.4324.96

支援 Chrome 88 版

  • 解決問題 3641:使用 Chrome Beta 版 v87 和 chromedriver v(87/86) 時,如果瀏覽器視窗未在前景運作,網頁不會載入/算繪

詳情請參閱版本資訊

ChromeDriver 88.0.4324.27

支援 Chrome 88 版

  • 解決問題 3611:protractor 中的 getText() 輸出內容與 <element>.innerText 不同
  • 解決問題 3625:提升元素螢幕截圖相容性
  • 解決問題 3628:陳舊元素參照和錯誤網址回報,網址路徑包含其他網址
  • 已解決問題 3631:新增 webauthn:extension:largeBlob 功能支援
  • 解決問題 3635:Chromedriver 86 - chromedriver.quit() 似乎無法正確傳遞卸載事件
  • 解決問題 3649:在 Windows 10 上使用無頭模式時,無法將所選文字複製到剪貼簿

詳情請參閱版本資訊

ChromeDriver 87.0.4280.88

支援 Chrome 87 版

  • 解決問題 3641:使用 Chrome Beta 版 v87 和 chromedriver v(87/86) 時,如果瀏覽器視窗未在前景運作,網頁不會載入/算繪
  • 已解決問題 3657:螢幕截圖背景瀏覽器逾時

詳情請參閱版本資訊

ChromeDriver 87.0.4280.20

支援 Chrome 87 版

  • 解決問題 2421:刪除 Android adb 伺服器上的舊通訊埠轉送管道
  • 已解決問題 3474:需要更新模擬行動裝置清單
  • 解決問題 3507:實作「get computed role」
  • 解決問題 3508:實作「取得計算標籤」
  • 解決問題 3584:重新命名 ChromeDriver 指令列選項 --whitelisted-ips
  • 已解決問題 3588:雙向 WebSocket 連線
  • 解決問題 3594:如果 OOPIF 在主要頁面之前載入,瀏覽作業會過早完成
  • 解決問題 3598:開發人員工具通訊埠的指令列選項,可轉送至 webview_devtools_remote 插座
  • 解決問題 3608:Chromedriver debuggerAddress 不支援 IPv6

詳情請參閱版本資訊

ChromeDriver 86.0.4240.22

支援 Chrome 86 版

  • 解決問題 3370:正常關閉 Chrome,否則 Cookie 無法正確儲存至 SQLite 持續性檔案
  • 解決問題 3401:Get Element Location JS 無法找出元素的顯示中心
  • 解決問題 3462:針對 sendKeys,CMD 鍵無法在 MAC 上運作
  • 解決問題 3541:改善 Client 和 ChromeDriver 之間的記錄
  • 已解決問題 3559:ChromeDriver 回報不相容時輸出 Chrome 版本

詳情請參閱版本資訊

ChromeDriver 85.0.4183.87

支援 Chrome 85 版

  • 解決問題 3578:開啟警告對話方塊時,Chrome 85 不再允許與視窗進行正常互動

詳情請參閱版本資訊

ChromeDriver 85.0.4183.83

支援 Chrome 85 版

  • 已解決問題 3577:ChromeDriver 85 無法偵測已變更的 Chrome 目錄 (C:\Program Files)

詳情請參閱版本資訊

ChromeDriver 85.0.4183.38

支援 Chrome 85 版

  • 已解決問題 3214:ChromeDriver78:Sendkeys 會使用 contenteditable 重設文字選取範圍
  • 已解決問題 3376:從 ChromeDriver 移除 LaunchApp 指令
  • 解決問題 3432:有時 NavigationTracker 無法偵測網頁何時載入完畢
  • 解決問題 3481:根據 w3c 規格新增 Print 端點
  • 解決問題 3488:Proxy 設定錯誤時,driver.get 不會擲回錯誤
  • 解決問題 3502:使用 document.hasFocus() 檢查元素是否處於焦點狀態
  • 已解決問題 3515:selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message

詳情請參閱版本資訊

ChromeDriver 84.0.4147.30

支援 Chrome 84 版

  • 解決問題 3420:切換至列印視窗後,chromedriver 停止回應
  • 解決問題 3421:驅動程式傳回不含樣式的西里爾文字
  • 解決問題 3422:GetElementText 會在原型 1.6.0.3 中中斷
  • 解決問題 3434:無法從「瀏覽器」記錄檔取得「assert」訊息

詳情請參閱版本資訊

ChromeDriver 83.0.4103.39

支援 Chrome 83 版

  • 更新 Chromedriver,確保能與 prototype.js 正常運作。

詳情請參閱版本資訊

ChromeDriver 83.0.4103.14

支援 Chrome 83 版

  • 解決問題 1778:從 ChromeDriver 淘汰 launchApp
  • 解決問題 2520:Chrome 無回應時,InitSession 可能會無限期等待
  • 已解決問題 3120:從新分頁下載無頭模式
  • 解決問題 3234:確認子字串前是否找到半形分號
  • 已解決問題 3240:ExecuteGetElementRect 不會檢查 GET_SIZE 傳回的狀態
  • 已解決問題 3331:get_cookies() 方法會傳回雙精度浮點數類型的「expiry」鍵,但在 w3c 模式中應為 int64
  • 已解決問題 3332:重試逾時記錄為嚴重
  • 已解決問題 3339:Chromedriver 意外結束,代碼為空值,訊號為 SIGTRAP
  • 已解決問題 3351:改善「安全考量」訊息
  • 已解決問題 3352:支援顏色元素的 SendKeys
  • 已解決問題 3353:框架情境遭到刪除後,系統仍會繼續等待待處理的導覽作業
  • 已解決問題 3375:在某些網站上,Chromedriver v80 會在 getPageSource 上停止運作
  • 已解決問題 3383:在 Windows 上,ChromeDriver 80 以上版本似乎會在特定元素或點選指令上結束或停滯
  • 已解決問題 3399:移除 wasThrown 檢查

ChromeDriver 81.0.4044.138

支援 Chrome 81 版

  • 更新 Chromedriver,確保能與 prototype.js 正常運作。

詳情請參閱版本資訊

ChromeDriver 81.0.4044.69

支援 Chrome 81 版

  • 已修正:在部分網站上,Chromedriver 會在 getPageSource 上異常終止。
    • 已修正:ChromeDriver 在特定元素或點擊指令上當機的問題。

詳情請參閱版本資訊

ChromeDriver 81.0.4044.20

支援 Chrome 81 版

  • 修正嘗試取得 HTML 元素位置時發生的錯誤。
    • 「Get Cookie」和「Add Cookie」指令現在是影格專屬指令。
    • 修正重新定義標準 JavaScript 物件的網站發生的一些問題。
    • 收到「目標已關閉」訊息後,ChromeDriver 會繼續等待載入完成。
    • Chromedriver 現在會傳回符合規格的逾時錯誤代碼
    • 已修正:ChromeDriver 在 NewSession 指令上回應速度異常緩慢的問題。
    • 現在支援超過 10 分鐘的使用者定義逾時。
    • 已修正:ChromeDriver 無法連線至開發人員工具,因為 IPv4 與 IPv6 不符。
    • 還原 Linux 上 Chrome 二進位檔的搜尋順序。

詳情請參閱版本資訊

ChromeDriver 80.0.3987.106

支援 Chrome 80 版

  • 還原 Linux 上 Chrome 二進位檔的搜尋順序

詳情請參閱版本資訊

ChromeDriver 80.0.3987.16

支援 Chrome 80 版

  • 修正使用 Proxy 時,載入頁面遭中止的問題。
  • Chromedriver 現在會等待目前影格載入。
  • ChromeDriver 記錄檔會包含驅動程式使用的連接埠。
  • 已為 w3c 模式啟用 SetGeoLocation。
  • 為 UnexpectedAlertOpen 狀態新增缺少的警示文字。
  • 載入 CRX2 擴充功能時,會顯示更完善的訊息。
  • 修正 ExecuteGetPageSource 中潛在的競爭狀況。
  • 如果 acceptInsecureCerts 功能為 true,ChromeDriver 會新增 --ignore-certificate-errors 標記
  • 更新錯誤訊息和傳回狀態,以因應沒有這類執行環境的情況
  • 已修正:ChromeDriver 可能會無限期封鎖,等待待處理的瀏覽作業。
  • 在 AddCookie 和 GetCookie 中新增 SameSite 屬性。

詳情請參閱版本資訊

ChromeDriver 79.0.3945.36

支援 Chrome 79 版

與 79.0.3945.16 版相比,本次更新包含下列變更:

  • 修正元素座標計算錯誤的問題

詳情請參閱版本資訊

ChromeDriver 79.0.3945.16

支援 Chrome 79 版

  • 修正 ChromeDriver 當機問題,此問題是由於在執行指令期間觸發 JavaScript 快訊所致
    • 修正錯誤:在擷取螢幕截圖時觸發快訊,導致 Chromedriver 鎖定
    • 從 Chrome 啟動指令中移除 --ignore-certificate-errors
    • 將 Win10 上的 platform 和 platformName 變更為 windows
    • 修正排除「enable-automation」時,未定義的 window.navigator.webdriver
  • 修正 WPT 測試「test_not_editable_inputs[hidden]」
    • 修正使用無頭模式時「元素無法點選」的問題

詳情請參閱版本資訊

ChromeDriver 78.0.3904.105

支援 Chrome 78 版

與 78.0.3904.70 版相比,這個版本有以下變更: * 修正元素座標的錯誤計算

詳情請參閱版本資訊

ChromeDriver 78.0.3904.70

支援 Chrome 78 版

與 78.0.3904.11 版相比,這個版本包含下列變更:

  • 由於有使用者回報多項問題,因此我們還原了調整 Retina 螢幕上螢幕截圖大小的變更

詳情請參閱版本資訊

ChromeDriver 78.0.3904.11

支援 Chrome 78 版

  • 修正 JavaScript 物件序列化中的幾個問題
    • 修正 Android 版 Chrome 的功能比對錯誤
    • 實作權限自動化
    • Retina 螢幕上的螢幕截圖大小固定
  • 修正部分情況下網頁載入逾時的問題
    • 改善 platformName 功能比對
    • 修正將指標移至下拉式清單選項時傳回的錯誤代碼
    • 修正無頭模式下的下載問題

詳情請參閱版本資訊

ChromeDriver 77.0.3865.40

支援 Chrome 77 版

相較於 77.0.3865.10 版,這個版本包含下列變更:

  • 修正序列化和還原序列化 JavaScript 物件時的兩個錯誤
  • 修正比對功能時的 platformName: android 處理方式

詳情請參閱版本資訊

ChromeDriver 77.0.3865.10

支援 Chrome 77 版

  • 修正 Actions API 實作中的多項問題
    • 提升 JavaScript 程式碼執行和結果處理效能
    • 修正 OSS 模式下,系統會錯誤拒絕主體空白的 POST 要求的問題
  • 更強大的導航追蹤器
  • 支援積極載入網頁策略
    • 新增 W3C WebDriver 規格的 New Window 指令
  • 支援在無頭模式下儲存下載的檔案
  • 新增支援載入 CRX3 擴充功能

詳情請參閱版本資訊

ChromeDriver 76.0.3809.126

支援 Chrome 76 版

相較於 76.0.3809.68 版,這個版本包含下列變更:

  • 修正序列化和還原序列化 JavaScript 物件時的兩個錯誤

詳情請參閱版本資訊

ChromeDriver 76.0.3809.68

支援 Chrome 76 版

與 76.0.3809.25 版相比,這個版本包含下列變更:

  • 修正偵測 JavaScript 物件中循環參照的錯誤
  • 修正錯誤:發生特定類型的 JavaScript 錯誤時,ChromeDriver 會當機
  • 修正錯誤,避免 Actions API 無法與 shadow DOM 中的元素互動
    • 修正了在動作 API 指令之間追蹤輔助鍵狀態的錯誤
    • 修正錯誤,可追蹤動作 API 指令之間的指標位置
    • 發生「Cannot call non W3C standard command while in W3C mode」錯誤時,將錯誤儲存至記錄檔

詳情請參閱版本資訊

ChromeDriver 76.0.3809.25

支援 Chrome 76 版

相較於 76.0.3809.12 版,本次更新包含下列變更:

  • 修正 OSS 模式下,系統會錯誤拒絕主體空白的 POST 要求的問題
  • 新增用於擷取 Chrome 記錄的端點
    • 在 W3C 模式中,為「Is Displayed」指令新增端點

詳情請參閱版本資訊

ChromeDriver 76.0.3809.12

支援 Chrome 76 版

  • 完成 Actions API 實作
    • 改善指令碼逾時處理的規格相容性
    • 改善「執行指令碼」指令的結果序列化
    • 修正將捲動元素帶入檢視畫面時的問題
    • 新增 WebDriver 規格中定義的「取消」鍵處理作業
    • 修正未處理的快訊錯誤回應處理程序
    • 修正 <details> 元素的處理方式
    • 更新 excludeSwitches 選項,允許在切換名稱中加入選用的前置破折號

詳情請參閱版本資訊

ChromeDriver 75.0.3770.140

支援 Chrome 75 版

相較於 75.0.3770.90 版,本次更新包含下列變更:

  • 修正錯誤:發生某些類型的 JavaScript 錯誤時,ChromeDriver 會當機
  • 修正在動作之間保留輔助鍵狀態的錯誤

詳情請參閱版本資訊

ChromeDriver 75.0.3770.90

支援 Chrome 75 版

與 75.0.3770.8 版相比,本次更新包含下列變更:

  • 修正 OSS 模式下,系統會錯誤拒絕主體空白的 POST 要求的問題
  • 新增用於擷取 Chrome 記錄的端點

詳情請參閱版本資訊

ChromeDriver 75.0.3770.8

支援 Chrome 75 版

最明顯的改變是 ChromeDriver 現在預設會以符合 W3C 標準的模式執行。其他變更包括:

  • 修正錯誤:元素清除期間會引發兩次模糊事件
  • 根據 W3C 標準,將功能 loggingPrefs 重新命名為 goog:loggingPrefs
  • 修正 W3C 模式中的錯誤處理方式
    • 正確處理在網域名稱中建立沒有前置點的 Cookie
    • 允許指令碼逾時為空值
    • 修正 Element Send Keys 指令,將檔案輸入內容與「multiple」屬性搭配使用
    • 修正「取得有效元素」指令,在沒有有效元素時傳回「沒有這類元素」錯誤
    • 修正導向格式錯誤網址時傳回「無效引數」錯誤的問題
    • 修正收到無效工作階段 ID 時的 HTTP 狀態碼
    • 修正輸入參數遺失或格式錯誤時的回應錯誤
    • 修正「執行指令碼」指令,以處理以行為導向的 JavaScript 註解

詳情請參閱版本資訊

ChromeDriver 74.0.3729.6

支援 Chrome 74 版

  • 修正 Windows 上會產生非預期 debug.log 檔案的錯誤
  • 修正 SVG 文件中的滑鼠點選和拖曳 / 放置問題
  • 在 ChromeDriver 的回應中新增快取控制標頭
  • 修正點擊遭其他元素攔截時的錯誤類型
  • 修正錯誤:在沒有 /dev/shm 的 Linux 裝置上,ChromeDriver 會失敗
  • 修正部分類型的雙擊事件
  • 修正 Get Sessions 指令
  • 修正「切換至頁框」指令中的錯誤檢查
  • 修正「取得網頁原始碼」指令

詳情請參閱版本資訊

ChromeDriver 73.0.3683.68

支援 Chrome 73 版

  • 修正 Windows 上會產生非預期 debug.log 檔案的錯誤
  • 修正部分情況下,從「執行指令碼」指令傳回的錯誤代碼
  • 在 ChromeDriver 的回應中新增快取控制標頭
  • 預設讓 HTTP 伺服器保持連線
  • 修正「關閉視窗」指令,正確處理使用者提示
  • 修正將鍵盤按鍵傳送至已停用元素時傳回的錯誤代碼
  • 改善逾時值處理的規格遵循情況
  • 改善「新增 Cookie」指令的規格遵循情形
    • 增加 HTTP 伺服器接聽佇列長度
  • 修正 v0 shadow DOM 中的「Is Element Displayed」指令
    • 在記錄檔中新增 Element Clear 指令行為變更的警告
  • 修正「執行指令碼」指令,可正確將 document.all 轉換為 JSON 格式
  • 改善錯誤元素參照的處理方式

詳情請參閱版本資訊

ChromeDriver 2.46

支援 Chrome 71 至 73 版

  • 修正部分情況下,從「執行指令碼」指令傳回的錯誤代碼
  • 預設讓 HTTP 伺服器保持連線
  • 修正「關閉視窗」指令,正確處理使用者提示
  • 修正將鍵盤按鍵傳送至已停用元素時傳回的錯誤代碼
  • 改善逾時值處理的規格遵循情況
  • 改善「新增 Cookie」指令的規格相容性
  • 改善「切換至影格」指令的規格相容性
  • 增加 HTTP 伺服器接聽佇列長度
  • 修正 v0 shadow DOM 中的「Is Element Displayed」指令
  • 「Fixed Element Double Click」指令
  • 在記錄檔中新增 Element Clear 指令行為變更的警告
  • 修正「執行指令碼」指令,可正確將 document.all 轉換為 JSON 格式
  • 改善錯誤元素參照的處理方式

詳情請參閱版本資訊

ChromeDriver 2.45

支援 Chrome 70 至 72 版

  • 修正「新工作階段」不符合規格的問題
  • 修正 ChromeDriver 不應在 Chrome 和 ChromeDriver 版本不相容時啟動 Chrome
  • 修正使用無效定位器時,「尋找元素」指令會傳回錯誤代碼的問題
  • 修正部分 ChromeDriver 狀態碼有誤的問題
  • 修正 WebViewImpl::DispatchTouchEventsForMouseEvents 內 JS 的編譯錯誤
  • 固定視窗大小指令應處理使用者提示
  • 修正 ChromeDriver 無法使用 Chrome 選項「user-data-dir=」正確啟動 Chrome 的問題
  • 修正狀態指令不符合規格
  • 修正新增對 strictFileInteractability 的支援

ChromeDriver 2.44

支援 Chrome 69 至 71 版

  • 修正 Mac 上的 WindowMaximize
  • 修正視窗控制代碼呼叫的「快訊開啟錯誤」問題
  • 在 W3C 模式下,固定元素傳送鍵應取得「text」屬性
  • 修正 XML 特殊情況,即「Is Element Enabled」未按照規格處理
  • 修正 XML 特殊情況:Get Element CSS Value 未依規格處理
  • 修正「設定視窗矩形」需要檢查無效輸入內容的問題
  • 修正支援新的 unhandledPromptBehavior 模式

ChromeDriver 2.43

支援 Chrome 69 至 71 版

變更包括:

  • 修正:Proxy 設定的剖析不符合標準
  • 修正「啟動應用程式」指令不穩定問題
  • 修正:系統會錯誤擷取 iFrame 內元素的螢幕截圖
  • ChromeDriver 新增支援透過遠端連線調整視窗大小的功能
  • 修正「清除元素」未處理錯誤代碼的問題
  • 修正「未等到元素顯示」問題
  • 修正「Get element property」未實作的問題
  • 「切換至影格」固定功能不符合規格
  • 修正「執行非同步指令碼」不會傳回符合規格的錯誤代碼
  • 修正「執行指令碼」未傳回符合規格的錯誤代碼
  • 修正「ExecuteGet 中的錯誤代碼不符合規格」問題
  • 修正「傳送警報文字」未傳回符合規格的錯誤代碼
  • 修正 input type="date" 上的 clear(),假裝元素無法由使用者編輯
  • 修正 Chromedriver 會取得手動開啟分頁的視窗控制代碼
  • 修正允許附加或為 chromedriver 啟動新記錄檔的問題
  • 修正問題:如果旗標位於 firstMatch 中,系統不會叫用新工作階段的 w3c 模式

ChromeDriver 2.42

支援 Chrome 68 至 70 版

變更包括:

  • 修正行動裝置模擬中的 ClickElement
  • 修正 IPv4 的許可清單 IP
  • 修正 Mac OS 上使用 whitelisted-ips 旗標啟動 ChromeDriver 的問題
  • 修正 SetTimeout,可接受前 W3C 和 W3C 格式
  • 修正擷取元素螢幕截圖的問題
  • 修正 ChromeDriver 也會在系統 PATH 中尋找 Chrome 二進位檔的問題
  • 修正「將視窗放到最大」和「全螢幕」問題
  • 實作記錄重播功能。( 目前不適用於 Android 和遠端瀏覽器)
  • 修正部分錯誤代碼不符合 W3C 標準的問題
  • 修正無法正確處理含多個引數的 console.log
  • 修正 GetElementRect 應允許雙精度浮點數的問題
  • 修正觸控模擬

ChromeDriver 2.41

支援 Chrome 67 至 69 版

變更包括:

  • 修正 ChromeDriver 搭配「whitelisted-ips」選項執行時的問題
  • 遠端偵錯通訊埠會傳回功能
  • 實作在 Android 上取得視窗大小的功能
  • 改善了電腦版 Chrome 的啟動錯誤訊息
  • 如果無法啟動 Chrome 二進位檔,ChromeDriver 會快速失敗
  • Close Window 傳回值符合規格