2023-11-28 12:13:02 +00:00
<!doctype html>
2023-11-29 13:34:30 +00:00
< html lang = "en" dir = "ltr" class = "docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-webdriver-bidi" data-has-hydrated = "false" >
2023-11-28 12:13:02 +00:00
< head >
< meta charset = "UTF-8" >
2023-11-29 13:34:30 +00:00
< meta name = "generator" content = "Docusaurus v3.0.0" >
< title data-rh = "true" > Experimental WebDriver BiDi Support | Puppeteer< / title > < meta data-rh = "true" name = "viewport" content = "width=device-width,initial-scale=1" > < meta data-rh = "true" name = "twitter:card" content = "summary_large_image" > < meta data-rh = "true" property = "og:url" content = "https://pptr.dev/next/webdriver-bidi" > < meta data-rh = "true" property = "og:locale" content = "en" > < meta data-rh = "true" name = "docsearch:language" content = "en" > < meta data-rh = "true" name = "docsearch:counter" content = "3" > < meta data-rh = "true" property = "og:title" content = "Experimental WebDriver BiDi Support | Puppeteer" > < meta data-rh = "true" name = "description" content = "WebDriver BiDi is a new cross-browser" > < meta data-rh = "true" property = "og:description" content = "WebDriver BiDi is a new cross-browser" > < link data-rh = "true" rel = "icon" href = "/img/favicon.ico" > < link data-rh = "true" rel = "canonical" href = "https://pptr.dev/next/webdriver-bidi" > < link data-rh = "true" rel = "alternate" href = "https://pptr.dev/next/webdriver-bidi" hreflang = "en" > < link data-rh = "true" rel = "alternate" href = "https://pptr.dev/next/webdriver-bidi" hreflang = "x-default" > < link data-rh = "true" rel = "preconnect" href = "https://DVKY664LG7-dsn.algolia.net" crossorigin = "anonymous" > < link rel = "search" type = "application/opensearchdescription+xml" title = "Puppeteer" href = "/opensearch.xml" >
2023-11-28 12:13:02 +00:00
2023-11-29 13:34:30 +00:00
< script src = "/fix-location.js" > < / script > < link rel = "stylesheet" href = "/assets/css/styles.c5c7e4fc.css" >
< script src = "/assets/js/runtime~main.7dc8b5a5.js" defer = "defer" > < / script >
< script src = "/assets/js/main.84008018.js" defer = "defer" > < / script >
2023-11-28 12:13:02 +00:00
< / head >
< body class = "navigation-with-keyboard" >
2023-11-29 13:34:30 +00:00
< script > ! function ( ) { function t ( t ) { document . documentElement . setAttribute ( "data-theme" , t ) } var e = function ( ) { try { return new URLSearchParams ( window . location . search ) . get ( "docusaurus-theme" ) } catch ( t ) { } } ( ) || function ( ) { try { return localStorage . getItem ( "theme" ) } catch ( t ) { } } ( ) ; t ( null !== e ? e : "light" ) } ( ) , function ( ) { try { const c = new URLSearchParams ( window . location . search ) . entries ( ) ; for ( var [ t , e ] of c ) if ( t . startsWith ( "docusaurus-data-" ) ) { var a = t . replace ( "docusaurus-data-" , "data-" ) ; document . documentElement . setAttribute ( a , e ) } } catch ( t ) { } } ( ) < / script > < div id = "__docusaurus" > < div role = "region" aria-label = "Skip to main content" > < a class = "skipToContent_fXgn" href = "#__docusaurus_skipToContent_fallback" > Skip to main content< / a > < / div > < nav aria-label = "Main" class = "navbar navbar--fixed-top" > < div class = "navbar__inner" > < div class = "navbar__items" > < button aria-label = "Toggle navigation bar" aria-expanded = "false" class = "navbar__toggle clean-btn" type = "button" > < svg width = "30" height = "30" viewBox = "0 0 30 30" aria-hidden = "true" > < path stroke = "currentColor" stroke-linecap = "round" stroke-miterlimit = "10" stroke-width = "2" d = "M4 7h22M4 15h22M4 23h22" > < / path > < / svg > < / button > < a class = "navbar__brand" href = "/" > < div class = "navbar__logo" > < img src = "https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" alt = "Puppeteer Logo" class = "themedComponent_mlkZ themedComponent--light_NVdE" > < img src = "https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" alt = "Puppeteer Logo" class = "themedComponent_mlkZ themedComponent--dark_xIcU" > < / div > < b class = "navbar__title text--truncate" > Puppeteer< / b > < / a > < a aria-current = "page" class = "navbar__item navbar__link navbar__link--active" href = "/next/" > Docs< / a > < a class = "navbar__item navbar__link" href = "/next/api/puppeteer.puppeteernode" > Puppeteer API< / a > < a class = "navbar__item navbar__link" href = "/next/browsers-api/" > @puppeteer/browsers API< / a > < / div > < div class = "navbar__items navbar__items--right" > < div class = "navbar__item dropdown dropdown--hoverable dropdown--right" > < a class = "navbar__link" aria-haspopup = "true" aria-expanded = "false" role = "button" href = "/next/" > Next< / a > < ul class = "dropdown__menu" > < li > < a aria-current = "page" class = "dropdown__link dropdown__link--active" href = "/next/webdriver-bidi" > Next< / a > < / li > < li > < a class = "dropdown__link" href = "/" > 21.5.2< / a > < / li > < li > < hr class = "dropdown-separator" > < / li > < li class = "dropdown-archived-versions" > < b > Archived versions< / b > < / li > < li > < a href = "https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.5.1/docs/api/index.md" target = "_blank" rel = "noopener noreferrer" class = "dropdown__link" > 21.5.1< svg width = "12" height = "12" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li > < a href = "https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.5.0/docs/api/index.md" target = "_blank" rel = "noopener noreferrer" class = "dropdown__link" > 21.5.0< svg width = "12" height = "12" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li > < a href = "https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.4.1/docs/api/index.md" target = "_blank" rel = "noopener noreferrer" class = "dropdown__link" > 21.4.1< svg width = "12" height = "12" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li > < a href = "https://github.com/puppeteer/puppeteer/blob/puppeteer-v21.4.0/docs/api/index.md" target = "_blank" rel = "noopener noreferrer" class = "dropdown__link" > 21.4.0< svg width = "12" height = "12" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10 . 988l4 . 035 4-6 . 977 7 . 0
< p > < a href = "https://w3c.github.io/webdriver-bidi/" target = "_blank" rel = "noopener noreferrer" > WebDriver BiDi< / a > is a new cross-browser
2023-11-28 12:13:02 +00:00
automation protocol that adds browser-driven events to WebDriver. Here are the
2023-11-29 13:34:30 +00:00
resources if you want to learn more about WebDriver BiDi:< / p >
< ul >
< li > < a href = "https://developer.chrome.com/articles/webdriver-bidi/" target = "_blank" rel = "noopener noreferrer" > WebDriver BiDi - The future of cross-browser automation< / a > < / li >
< li > < a href = "https://developer.chrome.com/blog/webdriver-bidi-2023/" target = "_blank" rel = "noopener noreferrer" > WebDriver BiDi: 2023 status update< / a > < / li >
< / ul >
< h2 class = "anchor anchorWithStickyNavbar_LWe7" id = "automate-with-chrome-and-firefox" > Automate with Chrome and Firefox< a href = "#automate-with-chrome-and-firefox" class = "hash-link" aria-label = "Direct link to Automate with Chrome and Firefox" title = "Direct link to Automate with Chrome and Firefox" > < / a > < / h2 >
< p > Firefox support has almost reaching feature parity with the previous CDP-based
2023-11-28 12:13:02 +00:00
implementation. To see which features are fully supported with WebDriver BiDi we
used the < a href = "https://puppeteer.github.io/ispuppeteerwebdriverbidiready/" target = "_blank" rel = "noopener noreferrer" > Puppeteer test suite< / a > . Currently,
we still have fewer than
< a href = "https://puppeteer.github.io/ispuppeteerwebdriverbidiready/firefox-delta.json" target = "_blank" rel = "noopener noreferrer" > 60< / a >
tests that are failing with Firefox and WebDriver BiDi compared to the previous
CDP implementation in Firefox but we also have more than
< a href = "https://puppeteer.github.io/ispuppeteerwebdriverbidiready/firefox-delta.json" target = "_blank" rel = "noopener noreferrer" > 82< / a >
2023-11-29 13:34:30 +00:00
new tests that work with WebDriver BiDi and that didn' t work with CDP.< / p >
< p > For Chrome, around 68% of the tests are currently passing with WebDriver BiDi so
2023-11-28 12:13:02 +00:00
the CDP-based implementation remains more powerful. Some of the Puppeteer
functionality is relying on CDP even with WebDriver BiDi enabled. Therefore, the
2023-11-29 13:34:30 +00:00
test pass rate is currently higher than that one of Firefox.< / p >
< p > Example of launching Firefox with WebDriver BiDi:< / p >
< div class = "language-ts codeBlockContainer_Ckt0 theme-code-block" style = "--prism-color:#393A34;--prism-background-color:#f6f8fa" > < div class = "codeBlockContent_biex" > < pre tabindex = "0" class = "prism-code language-ts codeBlock_bY9V thin-scrollbar" style = "color:#393A34;background-color:#f6f8fa" > < code class = "codeBlockLines_e6Vv" > < span class = "token-line" style = "color:#393A34" > < span class = "token keyword" style = "color:#00009f" > import< / span > < span class = "token plain" > puppeteer < / span > < span class = "token keyword" style = "color:#00009f" > from< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' puppeteer' < / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" style = "display:inline-block" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > const< / span > < span class = "token plain" > browser < / span > < span class = "token operator" style = "color:#393A34" > =< / span > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > puppeteer< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > launch< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > {< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > product< / span > < span class = "token operator" style = "color:#393A34" > :< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' firefox' < / span > < span class = "token punctuation" style = "color:#393A34" > ,< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > protocol< / span > < span class = "token operator" style = "color:#393A34" > :< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' webDriverBiDi' < / span > < span class = "token punctuation" style = "color:#393A34" > ,< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token punctuation" style = "color:#393A34" > }< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > const< / span > < span class = "token plain" > page < / span > < span class = "token operator" style = "color:#393A34" > =< / span > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > browser< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > newPage< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token operator" style = "color:#393A34" > ...< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > browser< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > close< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup__atx" > < button type = "button" aria-label =
< p > Example of launching Chrome with WebDriver BiDi:< / p >
< div class = "language-ts codeBlockContainer_Ckt0 theme-code-block" style = "--prism-color:#393A34;--prism-background-color:#f6f8fa" > < div class = "codeBlockContent_biex" > < pre tabindex = "0" class = "prism-code language-ts codeBlock_bY9V thin-scrollbar" style = "color:#393A34;background-color:#f6f8fa" > < code class = "codeBlockLines_e6Vv" > < span class = "token-line" style = "color:#393A34" > < span class = "token keyword" style = "color:#00009f" > import< / span > < span class = "token plain" > puppeteer < / span > < span class = "token keyword" style = "color:#00009f" > from< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' puppeteer' < / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" style = "display:inline-block" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > const< / span > < span class = "token plain" > browser < / span > < span class = "token operator" style = "color:#393A34" > =< / span > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > puppeteer< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > launch< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > {< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > product< / span > < span class = "token operator" style = "color:#393A34" > :< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' chrome' < / span > < span class = "token punctuation" style = "color:#393A34" > ,< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > protocol< / span > < span class = "token operator" style = "color:#393A34" > :< / span > < span class = "token plain" > < / span > < span class = "token string" style = "color:#e3116c" > ' webDriverBiDi' < / span > < span class = "token punctuation" style = "color:#393A34" > ,< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token punctuation" style = "color:#393A34" > }< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > const< / span > < span class = "token plain" > page < / span > < span class = "token operator" style = "color:#393A34" > =< / span > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > browser< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > newPage< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token operator" style = "color:#393A34" > ...< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > < / span > < span class = "token keyword" style = "color:#00009f" > await< / span > < span class = "token plain" > browser< / span > < span class = "token punctuation" style = "color:#393A34" > .< / span > < span class = "token function" style = "color:#d73a49" > close< / span > < span class = "token punctuation" style = "color:#393A34" > (< / span > < span class = "token punctuation" style = "color:#393A34" > )< / span > < span class = "token punctuation" style = "color:#393A34" > ;< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup__atx" > < button type = "button" aria-label = "
< h2 class = "anchor anchorWithStickyNavbar_LWe7" id = "puppeteer-features-supported-over-webdriver-bidi" > Puppeteer features supported over WebDriver BiDi< a href = "#puppeteer-features-supported-over-webdriver-bidi" class = "hash-link" aria-label = "Direct link to Puppeteer features supported over WebDriver BiDi" title = "Direct link to Puppeteer features supported over WebDriver BiDi" > < / a > < / h2 >
< ul >
< li >
< p > Browser and page automation< / p >
< ul >
< li > Browser.close< / li >
< li > Frame.goto() (except < code > referer< / code > and < code > referrerPolicy< / code > )< / li >
< li > Page.bringToFront< / li >
< li > Page.goBack()< / li >
< li > Page.goForward()< / li >
< li > Page.goto (except < code > referer< / code > and < code > referrerPolicy< / code > )< / li >
< li > Page.reload (except for < code > ignoreCache< / code > parameter)< / li >
< li > Page.setViewport (< code > width< / code > , < code > height< / code > , < code > deviceScaleFactor< / code > only)< / li >
< li > Puppeteer.launch< / li >
< / ul >
< / li >
< li >
< p > < a href = "https://pptr.dev/guides/evaluate-javascript" target = "_blank" rel = "noopener noreferrer" > Script evaluation< / a > :< / p >
< ul >
< li > JSHandle.evaluate< / li >
< li > JSHandle.evaluateHandle< / li >
< li > Page.evaluate< / li >
< li > Page.exposeFunction< / li >
< / ul >
< / li >
< li >
< p > < a href = "https://pptr.dev/guides/query-selectors" target = "_blank" rel = "noopener noreferrer" > Selectors< / a > and < a href = "https://pptr.dev/guides/locators" target = "_blank" rel = "noopener noreferrer" > locators< / a > except for ARIA:< / p >
< ul >
< li > Page.$ (ARIA selectors supported in Chrome)< / li >
< li > Page.$$ (ARIA selectors supported in Chrome)< / li >
< li > Page.$$eval (ARIA selectors supported in Chrome)< / li >
< li > Page.$eval (ARIA selectors supported in Chrome)< / li >
< li > Page.waitForSelector (ARIA selectors supported in Chrome)< / li >
< / ul >
< / li >
< li >
< p > Input< / p >
< ul >
< li > ElementHandle.click< / li >
< li > Keyboard.down< / li >
< li > Keyboard.press< / li >
< li > Keyboard.sendCharacter< / li >
< li > Keyboard.type< / li >
< li > Keyboard.up< / li >
< li > Mouse events (except for dedicated drag' n' drop API methods)< / li >
< li > Page.tap< / li >
< li > TouchScreen.*< / li >
< / ul >
< / li >
< li >
< p > JavaScript dialog interception< / p >
< ul >
< li > page.on(' dialog' )< / li >
< li > Dialog.*< / li >
< / ul >
< / li >
< li >
< p > Screenshots (not all parameters are supported)< / p >
< ul >
< li > Page.screenshot (supported parameters < code > clip< / code > , < code > encoding< / code > , < code > fullPage< / code > )< / li >
< / ul >
< / li >
< li >
< p > PDF generation (not all parameters are supported)< / p >
< ul >
< li > Page.pdf (only < code > format< / code > , < code > height< / code > , < code > landscape< / code > , < code > margin< / code > , < code > pageRanges< / code > , < code > printBackground< / code > , < code > scale< / code > , < code > width< / code > are supported)< / li >
< li > Page.createPDFStream (only < code > format< / code > , < code > height< / code > , < code > landscape< / code > , < code > margin< / code > , < code > pageRanges< / code > , < code > printBackground< / code > , < code > scale< / code > , < code > width< / code > are supported)< / li >
< / ul >
< / li >
< / ul >
< h2 class = "anchor anchorWithStickyNavbar_LWe7" id = "puppeteer-features-not-yet-supported-over-webdriver-bidi" > Puppeteer features not yet supported over WebDriver BiDi< a href = "#puppeteer-features-not-yet-supported-over-webdriver-bidi" class = "hash-link" aria-label = "Direct link to Puppeteer features not yet supported over WebDriver BiDi" title = "Direct link to Puppeteer features not yet supported over WebDriver BiDi" > < / a > < / h2 >
< ul >
< li >
< p > < a href = "https://pptr.dev/guides/request-interception" target = "_blank" rel = "noopener noreferrer" > Request interception< / a > < / p >
< ul >
< li > HTTPRequest.abort()< / li >
< li > HTTPRequest.abortErrorReason()< / li >
< li > HTTPRequest.client()< / li >
< li > HTTPRequest.continue()< / li >
< li > HTTPRequest.continueRequestOverrides()< / li >
< li > HTTPRequest.failure()< / li >
< li > HTTPRequest.finalizeInterceptions()< / li >
< li > HTTPRequest.interceptResolutionState()< / li >
< li > HTTPRequest.isInterceptResolutionHandled()< / li >
< li > HTTPRequest.respond()< / li >
< li > HTTPRequest.responseForRequest()< / li >
< li > Page.setRequestInterception()< / li >
< / ul >
< / li >
< li >
< p > Permissions< / p >
< ul >
< li > BrowserContext.clearPermissionOverrides()< / li >
< li > BrowserContext.overridePermissions()< / li >
< / ul >
< / li >
< li >
< p > Various emulations (most are supported with Chrome)< / p >
< ul >
< li > Page.emulate() (supported only in Chrome)< / li >
< li > Page.emulateCPUThrottling() (supported only in Chrome)< / li >
< li > Page.emulateIdleState() (supported only in Chrome)< / li >
< li > Page.emulateMediaFeatures() (supported only in Chrome)< / li >
< li > Page.emulateMediaType() (supported only in Chrome)< / li >
< li > Page.emulateTimezone() (supported only in Chrome)< / li >
< li > Page.emulateVisionDeficiency() (supported only in Chrome)< / li >
< li > Page.setBypassCSP() (supported only in Chrome)< / li >
< li > Page.setCacheEnabled() (supported only in Chrome)< / li >
< li > Page.setGeolocation() (supported only in Chrome)< / li >
< li > Page.setJavaScriptEnabled() (supported only in Chrome)< / li >
< / ul >
< / li >
< li >
< p > CDP-specific features< / p >
< ul >
< li > Page.createCDPSession() (supported only in Chrome)< / li >
< / ul >
< / li >
< li >
< p > Tracing (supported only in Chrome)< / p >
< / li >
< li >
< p > Coverage (supported only in Chrome)< / p >
< / li >
< li >
< p > Accessibility (supported only in Chrome)< / p >
< / li >
< li >
< p > Other methods:< / p >
< ul >
< li > Browser.userAgent()< / li >
< li > ElementHandle.uploadFile()< / li >
< li > Frame.isOOPFrame()< / li >
< li > Frame.waitForDevicePrompt()< / li >
< li > HTTPResponse.buffer()< / li >
< li > HTTPResponse.fromServiceWorker()< / li >
< li > HTTPResponse.securityDetails()< / li >
< li > Input.drag()< / li >
< li > Input.dragAndDrop()< / li >
< li > Input.dragOver()< / li >
< li > Input.drop()< / li >
< li > Page.authenticate()< / li >
< li > Page.cookies()< / li >
< li > Page.deleteCookie()< / li >
< li > Page.emulateNetworkConditions()< / li >
< li > Page.isDragInterceptionEnabled()< / li >
< li > Page.isJavaScriptEnabled() (supported only in Chrome)< / li >
< li > Page.isServiceWorkerBypassed()< / li >
< li > Page.metrics()< / li >
< li > Page.queryObjects() (supported only in Chrome)< / li >
< li > Page.screencast() (supported only in Chrome)< / li >
< li > Page.setBypassServiceWorker()< / li >
< li > Page.setCookie()< / li >
< li > Page.setDragInterception()< / li >
< li > Page.setExtraHTTPHeaders()< / li >
< li > Page.setOfflineMode()< / li >
< li > Page.setUserAgent()< / li >
< li > Page.waitForDevicePrompt()< / li >
< li > Page.waitForFileChooser()< / li >
< li > Page.workers()< / li >
< li > PageEvent.popup< / li >
< li > PageEvent.WorkerCreated< / li >
< li > PageEvent.WorkerDestroyed< / li >
< li > Target.opener()< / li >
< / ul >
< / li >
< / ul > < / div > < / article > < nav class = "pagination-nav docusaurus-mt-lg" aria-label = "Docs pages" > < a class = "pagination-nav__link pagination-nav__link--prev" href = "/next/integrations/ng-schematics" > < div class = "pagination-nav__sublabel" > Previous< / div > < div class = "pagination-nav__label" > Puppeteer Angular Schematic< / div > < / a > < a class = "pagination-nav__link pagination-nav__link--next" href = "/next/chromium-support" > < div class = "pagination-nav__sublabel" > Next< / div > < div class = "pagination-nav__label" > Chromium Support< / div > < / a > < / nav > < / div > < / div > < div class = "col col--3" > < div class = "tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop" > < ul class = "table-of-contents table-of-contents__left-border" > < li > < a href = "#automate-with-chrome-and-firefox" class = "table-of-contents__link toc-highlight" > Automate with Chrome and Firefox< / a > < / li > < li > < a href = "#puppeteer-features-supported-over-webdriver-bidi" class = "table-of-contents__link toc-highlight" > Puppeteer features supported over WebDriver BiDi< / a > < / li > < li > < a href = "#puppeteer-features-not-yet-supported-over-webdriver-bidi" class = "table-of-contents__link toc-highlight" > Puppeteer features not yet supported over WebDriver BiDi< / a > < / li > < / ul > < / div > < / div > < / div > < / div > < / main > < / div > < / div > < / div > < footer class = "footer footer--dark" > < div class = "container container-fluid" > < div class = "row footer__links" > < div class = "col footer__col" > < div class = "footer__title" > Community< / div > < ul class = "footer__items clean-list" > < li class = "footer__item" > < a href = "https://stackoverflow.com/questions/tagged/puppeteer" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Stack Overflow< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li class = "footer__item" > < a href = "https://twitter.com/chromedevtools" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Twitter< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li class = "footer__item" > < a href = "https://goo.gle/devtools-youtube" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > YouTube< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPIU" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < / ul > < / div > < / div > < div class = "footer__bottom text--center" > < div class = "footer__copyright" > Copyright © 2023 Google, Inc.< / div > < / div > < / div > < / footer > < / div >
2023-11-28 12:13:02 +00:00
< / body >
< / html >