0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Firefox、Chrome和Puppeteer已支持WebDriver BiDi

谷歌開發(fā)者 ? 來源:Android 開發(fā)者 ? 2024-11-06 16:35 ? 次閱讀

以下文章來源于 Android 開發(fā)者,作者 Google 作者 /Matthias Rohmer

近期,我們與 BrowserStack 一起見證了 WebDriver BiDi 在 BrowserStack 中正式投入使用。并且 WebDriver BiDi 也繼續(xù)得到了完善,F(xiàn)irefox 129 及 Puppeteer 23 均已獲得對 WebDriver BiDi 的生產就緒 (production-ready) 支持!

四年多來,Mozilla 一直是 WebDriver BiDi 的重要合作伙伴,在初期幫助制定了新標準,然后在 Firefox 中逐步實現(xiàn),并通過 Firefox WebDriver Newsletter 清晰地記錄了他們的進展。

由于 WebDriver BiDi 現(xiàn)已在 Firefox 中正式投入使用,Puppeteer 從版本 23 開始,可通過 WebDriver BiDi 為 Firefox 提供穩(wěn)定支持。這樣,您便可使用與 Chrome 相同的簡潔 API 將 Firefox 自動化。Puppeteer 對 Chrome 開發(fā)者工具協(xié)議 (CDP) 的支持保持不變。

提示:如要進一步了解 WebDriver BiDi,請參閱 WebDriver BiDi-跨瀏覽器自動化的未來。

Firefox、CDP 和 Puppeteer

Puppeteer 是開發(fā)者使用 Chrome 開發(fā)者工具協(xié)議 (CDP) 將基于 Chromium 的瀏覽器自動化的可靠工具。2019 年,Puppeteer 獲得了對 Firefox 的實驗性支持。 為此,Mozilla 在 Firefox 中實施并維護了一個 CDP 子集。此解決方案能讓 Firefox 通過 Puppeteer API 實現(xiàn)自動化,但也有一些注意事項:

顧名思義,CDP 由 Chrome 開發(fā)者工具所調用,需要根據(jù)開發(fā)者工具的要求進行更改。

CDP 未根據(jù)共享的公共規(guī)范進行標準化,在 Firefox 中對其進行維護需要團隊間順暢的溝通和持續(xù)的努力。

由于 Firefox 只實施了 CDP 的一個子集,Puppeteer 無法保證其完整的 API 能與 Firefox 兼容,可能會給用戶造成困擾。

雖然我們很高興在過去幾年中與 Mozilla 一起維護此支持,但我們深知這并非長久之計。以此合作伙伴關系為基礎,再聯(lián)合其他主要的瀏覽器和工具供應商,我們共同構建了 WebDriver BiDi。

提示:如需進一步了解 WebDriver BiDi 的發(fā)展歷程,請參閱回顧過往: 測試自動化的演變和發(fā)展。

團隊合作成就夢想

Firefox 團隊一直致力在 Firefox 中實施 WebDriver BiDi。與此同時,Puppeteer 團隊一直在擴展對 Puppeteer API 的 WebDriver BiDi 支持。兩個團隊共同努力的目標是借助 Puppeteer 中的 WebDriver BiDi 為生產自動化用例提供所有所需的可用 API,確保這些 API 在 Chrome 和 Firefox 中均受到支持。

如此,Puppeteer 用戶便能在啟動 Puppeteer 實例時指定 browser 配置鍵值,從而選擇 Firefox 或 Chrome 來實現(xiàn)自動化。

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 實現(xiàn) Chrome 自動化,您需要將 protocol 明確設置為 webDriverBiDi。這是因為對于 Chrome,Puppeteer 將始終默認使用 CDP,從而防止現(xiàn)有自動化受到影響,并同時繼續(xù)支持專門針對 Chrome 功能而構建的自動化。

提示:如要進一步了解 Chrome、Firefox、CDP 和 WebDriver BiDi 支持的 Puppeteer API,請參閱 Puppeteer 文檔。

從 Firefox 129 版本開始,F(xiàn)irefox 將棄用 CDP 支持,并計劃于 2024 年底移除該支持。如果您現(xiàn)有的自動化依賴于 Firefox 中的 CDP 支持,我們強烈建議您遷移至 WebDriver BiDi。如果無法實現(xiàn),請通過 dev-webdriver@mozilla.org 與我們聯(lián)系,分享您的用例。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3915

    瀏覽量

    127022
  • API
    API
    +關注

    關注

    2

    文章

    1471

    瀏覽量

    61741
  • Firefox
    +關注

    關注

    0

    文章

    97

    瀏覽量

    13636
  • 瀏覽器
    +關注

    關注

    1

    文章

    1008

    瀏覽量

    35218

原文標題:正式就緒 | Firefox、Chrome 和 Puppeteer 已支持 WebDriver BiDi

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    為什么無法下載SuperSpeedExplorerKitSetup_RevSS.exe?

    數(shù)據(jù)和 cookie(Chrome 瀏覽器),但仍然失敗。 我試過 Edge 和 Firefox 瀏覽器,同樣的瀏覽器清理,同樣的問題。 是服務器有問題,還是網頁本身有問題? 我手頭有這塊板子,卻無能為力。
    發(fā)表于 09-26 07:19

    iOS版Chrome瀏覽器如何啟用分組標簽頁功能

    此項功能現(xiàn)已在 Android 及 iPad 版 Chrome 上線,旨在協(xié)助用戶對開啟的標簽頁進行分類,如按工作、娛樂、個人等類別設立標簽組。
    的頭像 發(fā)表于 05-28 11:46 ?547次閱讀

    Chrome移動版支持自定義菜單欄功能

    在先前版本中,用戶通過點擊瀏覽器右上角的三個點按鈕即可調出包含各類圖標與操作的菜單。而此次更新后,Chrome新增了“自定義菜單”選項,允許用戶自主控制該區(qū)域的展示內容。
    的頭像 發(fā)表于 05-27 15:00 ?702次閱讀

    谷歌Chrome瀏覽器新增功能:生成隨機右鍵菜單密碼

    據(jù)悉,Google已于Canary版本Chrome瀏覽器添加了“Password manual fallback”的實驗性標志,支持用戶通過右鍵菜單生成密碼建議。
    的頭像 發(fā)表于 05-14 09:46 ?806次閱讀

    谷歌Chrome瀏覽器新版Favicon未對齊問題獲確認

    作為Chrome 123的升級,2023年度的Chrome Refresh采用了Material 3界面元素。然而,部分用戶對此不甚滿意,選擇在chrome://flags頁面取消這些更改。
    的頭像 發(fā)表于 04-23 10:35 ?530次閱讀

    Mozilla Firefox瀏覽器推出Text Fragments功能,提升用戶體驗

    早在2020年,谷歌即在Chrome瀏覽器中推出了“Scroll to Text Fragments”功能,而Edge、Opera、Brave、Vivaldi以及蘋果Safari等基于Chromium的瀏覽器也支持這一便捷特性
    的頭像 發(fā)表于 04-08 10:21 ?561次閱讀

    Firefox Nightly新增原生垂直標簽特性

    近日,基于Mozilla旗下的Firefox瀏覽器用戶向來期望其能集成垂直標簽頁功能,這一愿景在Mozilla Connect頁面被熱烈討論,迫切欲望僅次于原生標簽分組功能以及恢復對PWA應用的支持。
    的頭像 發(fā)表于 04-03 14:43 ?759次閱讀

    安卓版Chrome瀏覽器現(xiàn)已支持第三方密碼管理器調用

    據(jù)報道,數(shù)據(jù)解析專家Leppeva64近日在安卓版谷歌Chrome瀏覽器的源代碼中透露,該瀏覽器已在安卓平臺上實現(xiàn)了對第三方密碼管理器的調用支持,并覆蓋Stable、Beta及Canary版本。
    的頭像 發(fā)表于 03-19 11:04 ?634次閱讀

    Mozilla發(fā)布Firefox 123.0穩(wěn)定版,新添網站兼容性報告工具

    2023年2月20日,Mozilla發(fā)布Firefox 123.0穩(wěn)定版及115.9 ESR版本,并更迭Beta、Dev、Nightly三個開發(fā)頻道版本至124、125;手機版Firefox亦升級到123.0。
    的頭像 發(fā)表于 02-20 15:45 ?587次閱讀

    微軟等公司啟動Interop 2024,以提升現(xiàn)代瀏覽器兼容性與用戶體驗

    該項目以“實現(xiàn)各種技術在各款瀏覽器中的無縫銜接”為宗旨。無論用戶選擇Edge、Chrome、Firefox或Safari,所有網站在所支持的操作系統(tǒng)上都能提供同質化的瀏覽體驗及性能。
    的頭像 發(fā)表于 02-02 14:23 ?572次閱讀

    Firefox長達21年的 “陳年老bug”,終于被修復了!

    Firefox 的工單記錄頁面顯示,一個在 21 年前發(fā)現(xiàn)的 bug 終于被修復了。
    的頭像 發(fā)表于 01-25 11:08 ?357次閱讀
    <b class='flag-5'>Firefox</b>長達21年的 “陳年老bug”,終于被修復了!

    瀏覽器支持javascript怎么設置

    和JavaScript之間的關系。瀏覽器是一個軟件應用程序,用于解析和渲染網頁。它可以是桌面應用程序(例如Chrome,Firefox和Safari)或移動應用程序(例如Safari和Chrome
    的頭像 發(fā)表于 11-26 11:22 ?1353次閱讀

    Chrome支持運行Kotlin、Java等GC編程語言

    谷歌 Chrome 開發(fā)者博客官宣:Chrome 默認啟用 WebAssembly 垃圾回收 (WasmGC) 功能 —— 能夠將具有 GC 的編程語言編譯為 WebAssembly (Wasm)。
    的頭像 發(fā)表于 11-24 11:43 ?686次閱讀

    Mozilla Firefox開發(fā)將完全轉向Git,放棄Mercurial

    目前相關事項仍在規(guī)劃中,預計至少六個月后才會開始全面的 Git 過渡。過渡完成后,Mercurial 將從 Firefox 開發(fā)工作流程中完全淘汰。
    的頭像 發(fā)表于 11-23 16:08 ?607次閱讀
    Mozilla <b class='flag-5'>Firefox</b>開發(fā)將完全轉向Git,放棄Mercurial

    Python中如何進行selenium自動化操作

    =webdriver.Chrome(service= "你的chromedriver路徑" ) # 打開chrome瀏覽器后跳轉到百度首頁 # driver.get("http//:www.baidu.com") 上面
    的頭像 發(fā)表于 11-15 11:40 ?368次閱讀