以下文章來源于 Android 開發者,作者 Google 作者 /Matthias Rohmer
近期,我們與 BrowserStack 一起見證了 WebDriver BiDi 在 BrowserStack 中正式投入使用。并且 WebDriver BiDi 也繼續得到了完善,Firefox 129 及 Puppeteer 23 均已獲得對 WebDriver BiDi 的生產就緒 (production-ready) 支持!
四年多來,Mozilla 一直是 WebDriver BiDi 的重要合作伙伴,在初期幫助制定了新標準,然后在 Firefox 中逐步實現,并通過 Firefox WebDriver Newsletter 清晰地記錄了他們的進展。
由于 WebDriver BiDi 現已在 Firefox 中正式投入使用,Puppeteer 從版本 23 開始,可通過 WebDriver BiDi 為 Firefox 提供穩定支持。這樣,您便可使用與 Chrome 相同的簡潔 API 將 Firefox 自動化。Puppeteer 對 Chrome 開發者工具協議 (CDP) 的支持保持不變。
提示:如要進一步了解 WebDriver BiDi,請參閱 WebDriver BiDi-跨瀏覽器自動化的未來。
Firefox、CDP 和 Puppeteer
Puppeteer 是開發者使用 Chrome 開發者工具協議 (CDP) 將基于 Chromium 的瀏覽器自動化的可靠工具。2019 年,Puppeteer 獲得了對 Firefox 的實驗性支持。 為此,Mozilla 在 Firefox 中實施并維護了一個 CDP 子集。此解決方案能讓 Firefox 通過 Puppeteer API 實現自動化,但也有一些注意事項:
顧名思義,CDP 由 Chrome 開發者工具所調用,需要根據開發者工具的要求進行更改。
CDP 未根據共享的公共規范進行標準化,在 Firefox 中對其進行維護需要團隊間順暢的溝通和持續的努力。
由于 Firefox 只實施了 CDP 的一個子集,Puppeteer 無法保證其完整的 API 能與 Firefox 兼容,可能會給用戶造成困擾。
雖然我們很高興在過去幾年中與 Mozilla 一起維護此支持,但我們深知這并非長久之計。以此合作伙伴關系為基礎,再聯合其他主要的瀏覽器和工具供應商,我們共同構建了 WebDriver BiDi。
提示:如需進一步了解 WebDriver BiDi 的發展歷程,請參閱回顧過往: 測試自動化的演變和發展。
團隊合作成就夢想
Firefox 團隊一直致力在 Firefox 中實施 WebDriver BiDi。與此同時,Puppeteer 團隊一直在擴展對 Puppeteer API 的 WebDriver BiDi 支持。兩個團隊共同努力的目標是借助 Puppeteer 中的 WebDriver BiDi 為生產自動化用例提供所有所需的可用 API,確保這些 API 在 Chrome 和 Firefox 中均受到支持。
如此,Puppeteer 用戶便能在啟動 Puppeteer 實例時指定 browser 配置鍵值,從而選擇 Firefox 或 Chrome 來實現自動化。
import puppeteer from 'puppeteer'; const firefoxBrowser = await puppeteer.launch({ browser: 'firefox', // WebDriver BiDi is used by default in Firefox. }); const page = await firefoxBrowser.newPage(); ... await firefoxBrowser.close(); const chromeBrowser = await puppeteer.launch({ browser: 'chrome', protocol: 'webDriverBiDi', // CDP would be used by default for Chrome. }); const page = await chromeBrowser.newPage(); ... await chromeBrowser.close();
如要進一步了解 Firefox 129 全新功能以及 Mozilla 在 WebDriver BiDi 方面的工作進展,請參閱相關的 Mozilla Hacks 博文。
未來的 CDP 支持
上述代碼段顯示了,要借助 Puppeteer 使用 WebDriver BiDi 實現 Chrome 自動化,您需要將 protocol 明確設置為 webDriverBiDi。這是因為對于 Chrome,Puppeteer 將始終默認使用 CDP,從而防止現有自動化受到影響,并同時繼續支持專門針對 Chrome 功能而構建的自動化。
提示:如要進一步了解 Chrome、Firefox、CDP 和 WebDriver BiDi 支持的 Puppeteer API,請參閱 Puppeteer 文檔。
從 Firefox 129 版本開始,Firefox 將棄用 CDP 支持,并計劃于 2024 年底移除該支持。如果您現有的自動化依賴于 Firefox 中的 CDP 支持,我們強烈建議您遷移至 WebDriver BiDi。如果無法實現,請通過 dev-webdriver@mozilla.org 與我們聯系,分享您的用例。
-
Android
+關注
關注
12文章
3961瀏覽量
129482 -
API
+關注
關注
2文章
1559瀏覽量
63474 -
Firefox
+關注
關注
0文章
97瀏覽量
13910 -
瀏覽器
+關注
關注
1文章
1040瀏覽量
36057
原文標題:正式就緒 | Firefox、Chrome 和 Puppeteer 已支持 WebDriver BiDi
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
揭秘Chrome DevTools:從原理到自定義調試工具

2024年12月瀏覽器市場份額報告:谷歌Chrome穩居榜首
Chrome瀏覽器優化Android性能,驍龍8至尊版表現突出
寫一個Chrome瀏覽器插件

25G SFP28 BIDI光模塊介紹
為什么無法下載SuperSpeedExplorerKitSetup_RevSS.exe?
谷歌針對Android和iOS版Chrome發布五項更新
移遠通信LTE-A模組躋身谷歌Chrome OS準入供應商行列
谷歌Chrome瀏覽器新增三大AI功能,提升用戶體驗
ESP8266與IE相比,Chrome/Mozilla中的TCP服務器速度較慢是什么原因?
chrome插件新版本(v3版本)中的熱更新,即加載更新遠程js的方法探索

評論