mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
docs: create a single top-level TOC for api.md (#561)
This patch: - creates a single top-level TOC for api.md - adds a TOC for each class in the api.md
This commit is contained in:
parent
f887797327
commit
eab8f92ac8
571
docs/api.md
571
docs/api.md
@ -4,282 +4,35 @@
|
|||||||
|
|
||||||
##### Table of Contents
|
##### Table of Contents
|
||||||
|
|
||||||
<!-- GEN:toc -->
|
<!-- GEN:toc-top-level -->
|
||||||
- [class: Playwright](#class-playwright)
|
- [class: Playwright](#class-playwright)
|
||||||
* [playwright.devices](#playwrightdevices)
|
|
||||||
* [playwright.errors](#playwrighterrors)
|
|
||||||
* [playwright.executablePath()](#playwrightexecutablepath)
|
|
||||||
- [class: Browser](#class-browser)
|
- [class: Browser](#class-browser)
|
||||||
* [event: 'disconnected'](#event-disconnected)
|
|
||||||
* [browser.browserContexts()](#browserbrowsercontexts)
|
|
||||||
* [browser.close()](#browserclose)
|
|
||||||
* [browser.defaultContext()](#browserdefaultcontext)
|
|
||||||
* [browser.disconnect()](#browserdisconnect)
|
|
||||||
* [browser.isConnected()](#browserisconnected)
|
|
||||||
* [browser.newContext(options)](#browsernewcontextoptions)
|
|
||||||
- [class: BrowserContext](#class-browsercontext)
|
- [class: BrowserContext](#class-browsercontext)
|
||||||
* [browserContext.clearCookies()](#browsercontextclearcookies)
|
|
||||||
* [browserContext.clearPermissions()](#browsercontextclearpermissions)
|
|
||||||
* [browserContext.close()](#browsercontextclose)
|
|
||||||
* [browserContext.cookies([...urls])](#browsercontextcookiesurls)
|
|
||||||
* [browserContext.newPage(url)](#browsercontextnewpageurl)
|
|
||||||
* [browserContext.pages()](#browsercontextpages)
|
|
||||||
* [browserContext.setCookies(cookies)](#browsercontextsetcookiescookies)
|
|
||||||
* [browserContext.setGeolocation(geolocation)](#browsercontextsetgeolocationgeolocation)
|
|
||||||
* [browserContext.setPermissions(origin, permissions[])](#browsercontextsetpermissionsorigin-permissions)
|
|
||||||
- [class: ConsoleMessage](#class-consolemessage)
|
- [class: ConsoleMessage](#class-consolemessage)
|
||||||
* [consoleMessage.args()](#consolemessageargs)
|
|
||||||
* [consoleMessage.location()](#consolemessagelocation)
|
|
||||||
* [consoleMessage.text()](#consolemessagetext)
|
|
||||||
* [consoleMessage.type()](#consolemessagetype)
|
|
||||||
- [class: Dialog](#class-dialog)
|
- [class: Dialog](#class-dialog)
|
||||||
* [dialog.accept([promptText])](#dialogacceptprompttext)
|
|
||||||
* [dialog.defaultValue()](#dialogdefaultvalue)
|
|
||||||
* [dialog.dismiss()](#dialogdismiss)
|
|
||||||
* [dialog.message()](#dialogmessage)
|
|
||||||
* [dialog.type()](#dialogtype)
|
|
||||||
- [class: ElementHandle](#class-elementhandle)
|
- [class: ElementHandle](#class-elementhandle)
|
||||||
* [elementHandle.$(selector)](#elementhandleselector)
|
|
||||||
* [elementHandle.$$(selector)](#elementhandleselector-1)
|
|
||||||
* [elementHandle.$$eval(selector, pageFunction[, ...args])](#elementhandleevalselector-pagefunction-args)
|
|
||||||
* [elementHandle.$eval(selector, pageFunction[, ...args])](#elementhandleevalselector-pagefunction-args-1)
|
|
||||||
* [elementHandle.boundingBox()](#elementhandleboundingbox)
|
|
||||||
* [elementHandle.click([options])](#elementhandleclickoptions)
|
|
||||||
* [elementHandle.contentFrame()](#elementhandlecontentframe)
|
|
||||||
* [elementHandle.dblclick([options])](#elementhandledblclickoptions)
|
|
||||||
* [elementHandle.fill(value)](#elementhandlefillvalue)
|
|
||||||
* [elementHandle.focus()](#elementhandlefocus)
|
|
||||||
* [elementHandle.hover([options])](#elementhandlehoveroptions)
|
|
||||||
* [elementHandle.ownerFrame()](#elementhandleownerframe)
|
|
||||||
* [elementHandle.press(key[, options])](#elementhandlepresskey-options)
|
|
||||||
* [elementHandle.screenshot([options])](#elementhandlescreenshotoptions)
|
|
||||||
* [elementHandle.scrollIntoViewIfNeeded()](#elementhandlescrollintoviewifneeded)
|
|
||||||
* [elementHandle.select(...values)](#elementhandleselectvalues)
|
|
||||||
* [elementHandle.setInputFiles(...files)](#elementhandlesetinputfilesfiles)
|
|
||||||
* [elementHandle.toString()](#elementhandletostring)
|
|
||||||
* [elementHandle.tripleclick([options])](#elementhandletripleclickoptions)
|
|
||||||
* [elementHandle.type(text[, options])](#elementhandletypetext-options)
|
|
||||||
* [elementHandle.visibleRatio()](#elementhandlevisibleratio)
|
|
||||||
- [class: Frame](#class-frame)
|
- [class: Frame](#class-frame)
|
||||||
* [frame.$(selector)](#frameselector)
|
|
||||||
* [frame.$$(selector)](#frameselector-1)
|
|
||||||
* [frame.$$eval(selector, pageFunction[, ...args])](#frameevalselector-pagefunction-args)
|
|
||||||
* [frame.$eval(selector, pageFunction[, ...args])](#frameevalselector-pagefunction-args-1)
|
|
||||||
* [frame.$wait(selector, pageFunction[, options[, ...args]])](#framewaitselector-pagefunction-options-args)
|
|
||||||
* [frame.addScriptTag(options)](#frameaddscripttagoptions)
|
|
||||||
* [frame.addStyleTag(options)](#frameaddstyletagoptions)
|
|
||||||
* [frame.childFrames()](#framechildframes)
|
|
||||||
* [frame.click(selector[, options])](#frameclickselector-options)
|
|
||||||
* [frame.content()](#framecontent)
|
|
||||||
* [frame.dblclick(selector[, options])](#framedblclickselector-options)
|
|
||||||
* [frame.evaluate(pageFunction[, ...args])](#frameevaluatepagefunction-args)
|
|
||||||
* [frame.evaluateHandle(pageFunction[, ...args])](#frameevaluatehandlepagefunction-args)
|
|
||||||
* [frame.fill(selector, value, options)](#framefillselector-value-options)
|
|
||||||
* [frame.focus(selector, options)](#framefocusselector-options)
|
|
||||||
* [frame.goto(url[, options])](#framegotourl-options)
|
|
||||||
* [frame.hover(selector[, options])](#framehoverselector-options)
|
|
||||||
* [frame.isDetached()](#frameisdetached)
|
|
||||||
* [frame.name()](#framename)
|
|
||||||
* [frame.parentFrame()](#frameparentframe)
|
|
||||||
* [frame.select(selector, value, options)](#frameselectselector-value-options)
|
|
||||||
* [frame.setContent(html[, options])](#framesetcontenthtml-options)
|
|
||||||
* [frame.title()](#frametitle)
|
|
||||||
* [frame.tripleclick(selector[, options])](#frametripleclickselector-options)
|
|
||||||
* [frame.type(selector, text[, options])](#frametypeselector-text-options)
|
|
||||||
* [frame.url()](#frameurl)
|
|
||||||
* [frame.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]])](#framewaitforselectororfunctionortimeout-options-args)
|
|
||||||
* [frame.waitForFunction(pageFunction[, options[, ...args]])](#framewaitforfunctionpagefunction-options-args)
|
|
||||||
* [frame.waitForLoadState([options])](#framewaitforloadstateoptions)
|
|
||||||
* [frame.waitForNavigation([options])](#framewaitfornavigationoptions)
|
|
||||||
* [frame.waitForSelector(selector[, options])](#framewaitforselectorselector-options)
|
|
||||||
- [class: JSHandle](#class-jshandle)
|
- [class: JSHandle](#class-jshandle)
|
||||||
* [jsHandle.asElement()](#jshandleaselement)
|
|
||||||
* [jsHandle.dispose()](#jshandledispose)
|
|
||||||
* [jsHandle.evaluate(pageFunction[, ...args])](#jshandleevaluatepagefunction-args)
|
|
||||||
* [jsHandle.evaluateHandle(pageFunction[, ...args])](#jshandleevaluatehandlepagefunction-args)
|
|
||||||
* [jsHandle.getProperties()](#jshandlegetproperties)
|
|
||||||
* [jsHandle.getProperty(propertyName)](#jshandlegetpropertypropertyname)
|
|
||||||
* [jsHandle.jsonValue()](#jshandlejsonvalue)
|
|
||||||
- [class: Keyboard](#class-keyboard)
|
- [class: Keyboard](#class-keyboard)
|
||||||
* [keyboard.down(key[, options])](#keyboarddownkey-options)
|
|
||||||
* [keyboard.press(key[, options])](#keyboardpresskey-options)
|
|
||||||
* [keyboard.sendCharacters(text)](#keyboardsendcharacterstext)
|
|
||||||
* [keyboard.type(text[, options])](#keyboardtypetext-options)
|
|
||||||
* [keyboard.up(key)](#keyboardupkey)
|
|
||||||
- [class: Mouse](#class-mouse)
|
- [class: Mouse](#class-mouse)
|
||||||
* [mouse.click(x, y[, options])](#mouseclickx-y-options)
|
|
||||||
* [mouse.dblclick(x, y[, options])](#mousedblclickx-y-options)
|
|
||||||
* [mouse.down([options])](#mousedownoptions)
|
|
||||||
* [mouse.move(x, y[, options])](#mousemovex-y-options)
|
|
||||||
* [mouse.tripleclick(x, y[, options])](#mousetripleclickx-y-options)
|
|
||||||
* [mouse.up([options])](#mouseupoptions)
|
|
||||||
- [class: Page](#class-page)
|
- [class: Page](#class-page)
|
||||||
* [event: 'close'](#event-close)
|
|
||||||
* [event: 'console'](#event-console)
|
|
||||||
* [event: 'dialog'](#event-dialog)
|
|
||||||
* [event: 'domcontentloaded'](#event-domcontentloaded)
|
|
||||||
* [event: 'filechooser'](#event-filechooser)
|
|
||||||
* [event: 'frameattached'](#event-frameattached)
|
|
||||||
* [event: 'framedetached'](#event-framedetached)
|
|
||||||
* [event: 'framenavigated'](#event-framenavigated)
|
|
||||||
* [event: 'load'](#event-load)
|
|
||||||
* [event: 'pageerror'](#event-pageerror)
|
|
||||||
* [event: 'popup'](#event-popup)
|
|
||||||
* [event: 'request'](#event-request)
|
|
||||||
* [event: 'requestfailed'](#event-requestfailed)
|
|
||||||
* [event: 'requestfinished'](#event-requestfinished)
|
|
||||||
* [event: 'response'](#event-response)
|
|
||||||
* [event: 'workercreated'](#event-workercreated)
|
|
||||||
* [event: 'workerdestroyed'](#event-workerdestroyed)
|
|
||||||
* [page.$(selector)](#pageselector)
|
|
||||||
* [page.$$(selector)](#pageselector-1)
|
|
||||||
* [page.$$eval(selector, pageFunction[, ...args])](#pageevalselector-pagefunction-args)
|
|
||||||
* [page.$eval(selector, pageFunction[, ...args])](#pageevalselector-pagefunction-args-1)
|
|
||||||
* [page.$wait(selector, pageFunction[, options[, ...args]])](#pagewaitselector-pagefunction-options-args)
|
|
||||||
* [page.accessibility](#pageaccessibility)
|
|
||||||
* [page.addScriptTag(options)](#pageaddscripttagoptions)
|
|
||||||
* [page.addStyleTag(options)](#pageaddstyletagoptions)
|
|
||||||
* [page.authenticate(credentials)](#pageauthenticatecredentials)
|
|
||||||
* [page.browserContext()](#pagebrowsercontext)
|
|
||||||
* [page.click(selector[, options])](#pageclickselector-options)
|
|
||||||
* [page.close([options])](#pagecloseoptions)
|
|
||||||
* [page.content()](#pagecontent)
|
|
||||||
* [page.coverage](#pagecoverage)
|
|
||||||
* [page.dblclick(selector[, options])](#pagedblclickselector-options)
|
|
||||||
* [page.emulateMedia(options)](#pageemulatemediaoptions)
|
|
||||||
* [page.evaluate(pageFunction[, ...args])](#pageevaluatepagefunction-args)
|
|
||||||
* [page.evaluateHandle(pageFunction[, ...args])](#pageevaluatehandlepagefunction-args)
|
|
||||||
* [page.evaluateOnNewDocument(pageFunction[, ...args])](#pageevaluateonnewdocumentpagefunction-args)
|
|
||||||
* [page.exposeFunction(name, playwrightFunction)](#pageexposefunctionname-playwrightfunction)
|
|
||||||
* [page.fill(selector, value, options)](#pagefillselector-value-options)
|
|
||||||
* [page.focus(selector, options)](#pagefocusselector-options)
|
|
||||||
* [page.frames()](#pageframes)
|
|
||||||
* [page.goBack([options])](#pagegobackoptions)
|
|
||||||
* [page.goForward([options])](#pagegoforwardoptions)
|
|
||||||
* [page.goto(url[, options])](#pagegotourl-options)
|
|
||||||
* [page.hover(selector[, options])](#pagehoverselector-options)
|
|
||||||
* [page.isClosed()](#pageisclosed)
|
|
||||||
* [page.keyboard](#pagekeyboard)
|
|
||||||
* [page.mainFrame()](#pagemainframe)
|
|
||||||
* [page.mouse](#pagemouse)
|
|
||||||
* [page.pdf([options])](#pagepdfoptions)
|
|
||||||
* [page.reload([options])](#pagereloadoptions)
|
|
||||||
* [page.screenshot([options])](#pagescreenshotoptions)
|
|
||||||
* [page.select(selector, value, options)](#pageselectselector-value-options)
|
|
||||||
* [page.setCacheEnabled([enabled])](#pagesetcacheenabledenabled)
|
|
||||||
* [page.setContent(html[, options])](#pagesetcontenthtml-options)
|
|
||||||
* [page.setDefaultNavigationTimeout(timeout)](#pagesetdefaultnavigationtimeouttimeout)
|
|
||||||
* [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout)
|
|
||||||
* [page.setExtraHTTPHeaders(headers)](#pagesetextrahttpheadersheaders)
|
|
||||||
* [page.setOfflineMode(enabled)](#pagesetofflinemodeenabled)
|
|
||||||
* [page.setRequestInterception(enabled)](#pagesetrequestinterceptionenabled)
|
|
||||||
* [page.setViewport(viewport)](#pagesetviewportviewport)
|
|
||||||
* [page.title()](#pagetitle)
|
|
||||||
* [page.tripleclick(selector[, options])](#pagetripleclickselector-options)
|
|
||||||
* [page.type(selector, text[, options])](#pagetypeselector-text-options)
|
|
||||||
* [page.url()](#pageurl)
|
|
||||||
* [page.viewport()](#pageviewport)
|
|
||||||
* [page.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]])](#pagewaitforselectororfunctionortimeout-options-args)
|
|
||||||
* [page.waitForEvent(event[, optionsOrPredicate])](#pagewaitforeventevent-optionsorpredicate)
|
|
||||||
* [page.waitForFunction(pageFunction[, options[, ...args]])](#pagewaitforfunctionpagefunction-options-args)
|
|
||||||
* [page.waitForLoadState([options])](#pagewaitforloadstateoptions)
|
|
||||||
* [page.waitForNavigation([options])](#pagewaitfornavigationoptions)
|
|
||||||
* [page.waitForRequest(urlOrPredicate[, options])](#pagewaitforrequesturlorpredicate-options)
|
|
||||||
* [page.waitForResponse(urlOrPredicate[, options])](#pagewaitforresponseurlorpredicate-options)
|
|
||||||
* [page.waitForSelector(selector[, options])](#pagewaitforselectorselector-options)
|
|
||||||
* [page.workers()](#pageworkers)
|
|
||||||
- [class: Request](#class-request)
|
- [class: Request](#class-request)
|
||||||
* [request.abort([errorCode])](#requestaborterrorcode)
|
|
||||||
* [request.continue([overrides])](#requestcontinueoverrides)
|
|
||||||
* [request.failure()](#requestfailure)
|
|
||||||
* [request.frame()](#requestframe)
|
|
||||||
* [request.fulfill(response)](#requestfulfillresponse)
|
|
||||||
* [request.headers()](#requestheaders)
|
|
||||||
* [request.isNavigationRequest()](#requestisnavigationrequest)
|
|
||||||
* [request.method()](#requestmethod)
|
|
||||||
* [request.postData()](#requestpostdata)
|
|
||||||
* [request.redirectChain()](#requestredirectchain)
|
|
||||||
* [request.resourceType()](#requestresourcetype)
|
|
||||||
* [request.response()](#requestresponse)
|
|
||||||
* [request.url()](#requesturl)
|
|
||||||
- [class: Response](#class-response)
|
- [class: Response](#class-response)
|
||||||
* [response.buffer()](#responsebuffer)
|
|
||||||
* [response.frame()](#responseframe)
|
|
||||||
* [response.headers()](#responseheaders)
|
|
||||||
* [response.json()](#responsejson)
|
|
||||||
* [response.ok()](#responseok)
|
|
||||||
* [response.remoteAddress()](#responseremoteaddress)
|
|
||||||
* [response.request()](#responserequest)
|
|
||||||
* [response.status()](#responsestatus)
|
|
||||||
* [response.statusText()](#responsestatustext)
|
|
||||||
* [response.text()](#responsetext)
|
|
||||||
* [response.url()](#responseurl)
|
|
||||||
- [class: TimeoutError](#class-timeouterror)
|
- [class: TimeoutError](#class-timeouterror)
|
||||||
- [class: Accessibility](#class-accessibility)
|
- [class: Accessibility](#class-accessibility)
|
||||||
* [accessibility.snapshot([options])](#accessibilitysnapshotoptions)
|
|
||||||
- [class: Coverage](#class-coverage)
|
- [class: Coverage](#class-coverage)
|
||||||
* [coverage.startCSSCoverage([options])](#coveragestartcsscoverageoptions)
|
|
||||||
* [coverage.startJSCoverage([options])](#coveragestartjscoverageoptions)
|
|
||||||
* [coverage.stopCSSCoverage()](#coveragestopcsscoverage)
|
|
||||||
* [coverage.stopJSCoverage()](#coveragestopjscoverage)
|
|
||||||
- [class: Worker](#class-worker)
|
- [class: Worker](#class-worker)
|
||||||
* [worker.evaluate(pageFunction[, ...args])](#workerevaluatepagefunction-args)
|
|
||||||
* [worker.evaluateHandle(pageFunction[, ...args])](#workerevaluatehandlepagefunction-args)
|
|
||||||
* [worker.url()](#workerurl)
|
|
||||||
- [class: ChromiumPlaywright](#class-chromiumplaywright)
|
- [class: ChromiumPlaywright](#class-chromiumplaywright)
|
||||||
* [chromiumPlaywright.connect(options)](#chromiumplaywrightconnectoptions)
|
|
||||||
* [chromiumPlaywright.defaultArgs([options])](#chromiumplaywrightdefaultargsoptions)
|
|
||||||
* [chromiumPlaywright.launch([options])](#chromiumplaywrightlaunchoptions)
|
|
||||||
* [chromiumPlaywright.launchServer([options])](#chromiumplaywrightlaunchserveroptions)
|
|
||||||
- [class: ChromiumBrowser](#class-chromiumbrowser)
|
- [class: ChromiumBrowser](#class-chromiumbrowser)
|
||||||
* [event: 'targetchanged'](#event-targetchanged)
|
|
||||||
* [event: 'targetcreated'](#event-targetcreated)
|
|
||||||
* [event: 'targetdestroyed'](#event-targetdestroyed)
|
|
||||||
* [chromiumBrowser.browserTarget()](#chromiumbrowserbrowsertarget)
|
|
||||||
* [chromiumBrowser.pageTarget(page)](#chromiumbrowserpagetargetpage)
|
|
||||||
* [chromiumBrowser.serviceWorker(target)](#chromiumbrowserserviceworkertarget)
|
|
||||||
* [chromiumBrowser.startTracing(page, [options])](#chromiumbrowserstarttracingpage-options)
|
|
||||||
* [chromiumBrowser.stopTracing()](#chromiumbrowserstoptracing)
|
|
||||||
* [chromiumBrowser.targets(context)](#chromiumbrowsertargetscontext)
|
|
||||||
* [chromiumBrowser.waitForTarget(predicate[, options])](#chromiumbrowserwaitfortargetpredicate-options)
|
|
||||||
- [class: ChromiumBrowserServer](#class-chromiumbrowserserver)
|
- [class: ChromiumBrowserServer](#class-chromiumbrowserserver)
|
||||||
* [chromiumBrowserServer.close()](#chromiumbrowserserverclose)
|
|
||||||
* [chromiumBrowserServer.connect()](#chromiumbrowserserverconnect)
|
|
||||||
* [chromiumBrowserServer.connectOptions()](#chromiumbrowserserverconnectoptions)
|
|
||||||
* [chromiumBrowserServer.process()](#chromiumbrowserserverprocess)
|
|
||||||
* [chromiumBrowserServer.wsEndpoint()](#chromiumbrowserserverwsendpoint)
|
|
||||||
- [class: ChromiumSession](#class-chromiumsession)
|
- [class: ChromiumSession](#class-chromiumsession)
|
||||||
* [chromiumSession.detach()](#chromiumsessiondetach)
|
|
||||||
* [chromiumSession.send(method[, params])](#chromiumsessionsendmethod-params)
|
|
||||||
- [class: ChromiumTarget](#class-chromiumtarget)
|
- [class: ChromiumTarget](#class-chromiumtarget)
|
||||||
* [chromiumTarget.browserContext()](#chromiumtargetbrowsercontext)
|
|
||||||
* [chromiumTarget.createCDPSession()](#chromiumtargetcreatecdpsession)
|
|
||||||
* [chromiumTarget.opener()](#chromiumtargetopener)
|
|
||||||
* [chromiumTarget.page()](#chromiumtargetpage)
|
|
||||||
* [chromiumTarget.type()](#chromiumtargettype)
|
|
||||||
* [chromiumTarget.url()](#chromiumtargeturl)
|
|
||||||
- [class: FirefoxPlaywright](#class-firefoxplaywright)
|
- [class: FirefoxPlaywright](#class-firefoxplaywright)
|
||||||
* [firefoxPlaywright.connect(options)](#firefoxplaywrightconnectoptions)
|
|
||||||
* [firefoxPlaywright.defaultArgs([options])](#firefoxplaywrightdefaultargsoptions)
|
|
||||||
* [firefoxPlaywright.launch([options])](#firefoxplaywrightlaunchoptions)
|
|
||||||
* [firefoxPlaywright.launchServer([options])](#firefoxplaywrightlaunchserveroptions)
|
|
||||||
- [class: FirefoxBrowser](#class-firefoxbrowser)
|
- [class: FirefoxBrowser](#class-firefoxbrowser)
|
||||||
- [class: FirefoxBrowserServer](#class-firefoxbrowserserver)
|
- [class: FirefoxBrowserServer](#class-firefoxbrowserserver)
|
||||||
* [firefoxBrowserServer.close()](#firefoxbrowserserverclose)
|
|
||||||
* [firefoxBrowserServer.connect()](#firefoxbrowserserverconnect)
|
|
||||||
* [firefoxBrowserServer.connectOptions()](#firefoxbrowserserverconnectoptions)
|
|
||||||
* [firefoxBrowserServer.process()](#firefoxbrowserserverprocess)
|
|
||||||
* [firefoxBrowserServer.wsEndpoint()](#firefoxbrowserserverwsendpoint)
|
|
||||||
- [class: WebKitPlaywright](#class-webkitplaywright)
|
- [class: WebKitPlaywright](#class-webkitplaywright)
|
||||||
* [webkitPlaywright.defaultArgs([options])](#webkitplaywrightdefaultargsoptions)
|
|
||||||
* [webkitPlaywright.launch([options])](#webkitplaywrightlaunchoptions)
|
|
||||||
* [webkitPlaywright.launchServer([options])](#webkitplaywrightlaunchserveroptions)
|
|
||||||
- [class: WebKitBrowser](#class-webkitbrowser)
|
- [class: WebKitBrowser](#class-webkitbrowser)
|
||||||
- [class: WebKitBrowserServer](#class-webkitbrowserserver)
|
- [class: WebKitBrowserServer](#class-webkitbrowserserver)
|
||||||
* [webKitBrowserServer.close()](#webkitbrowserserverclose)
|
|
||||||
* [webKitBrowserServer.connect()](#webkitbrowserserverconnect)
|
|
||||||
* [webKitBrowserServer.connectOptions()](#webkitbrowserserverconnectoptions)
|
|
||||||
* [webKitBrowserServer.process()](#webkitbrowserserverprocess)
|
|
||||||
- [Working with selectors](#working-with-selectors)
|
- [Working with selectors](#working-with-selectors)
|
||||||
- [Working with Chrome Extensions](#working-with-chrome-extensions)
|
- [Working with Chrome Extensions](#working-with-chrome-extensions)
|
||||||
- [Downloaded browsers](#downloaded-browsers)
|
- [Downloaded browsers](#downloaded-browsers)
|
||||||
@ -305,6 +58,12 @@ See [chromiumPlaywright.launch([options])](#chromiumplaywrightlaunchoptions), [f
|
|||||||
|
|
||||||
Playwright automatically downloads browser executables during installation, see [Downloaded browsers](#downloaded-browsers) for more information.
|
Playwright automatically downloads browser executables during installation, see [Downloaded browsers](#downloaded-browsers) for more information.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [playwright.devices](#playwrightdevices)
|
||||||
|
- [playwright.errors](#playwrighterrors)
|
||||||
|
- [playwright.executablePath()](#playwrightexecutablepath)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### playwright.devices
|
#### playwright.devices
|
||||||
- returns: <[Object]>
|
- returns: <[Object]>
|
||||||
|
|
||||||
@ -382,6 +141,15 @@ const playwright = require('playwright').webkit; // Or 'chromium' or 'firefox'.
|
|||||||
await browser.close();
|
await browser.close();
|
||||||
})();
|
})();
|
||||||
```
|
```
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [event: 'disconnected'](#event-disconnected)
|
||||||
|
- [browser.browserContexts()](#browserbrowsercontexts)
|
||||||
|
- [browser.close()](#browserclose)
|
||||||
|
- [browser.defaultContext()](#browserdefaultcontext)
|
||||||
|
- [browser.disconnect()](#browserdisconnect)
|
||||||
|
- [browser.isConnected()](#browserisconnected)
|
||||||
|
- [browser.newContext(options)](#browsernewcontextoptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### event: 'disconnected'
|
#### event: 'disconnected'
|
||||||
Emitted when Playwright gets disconnected from the browser instance. This might happen because of one of the following:
|
Emitted when Playwright gets disconnected from the browser instance. This might happen because of one of the following:
|
||||||
@ -466,6 +234,18 @@ const page = await context.newPage('https://example.com');
|
|||||||
await context.close();
|
await context.close();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [browserContext.clearCookies()](#browsercontextclearcookies)
|
||||||
|
- [browserContext.clearPermissions()](#browsercontextclearpermissions)
|
||||||
|
- [browserContext.close()](#browsercontextclose)
|
||||||
|
- [browserContext.cookies([...urls])](#browsercontextcookiesurls)
|
||||||
|
- [browserContext.newPage(url)](#browsercontextnewpageurl)
|
||||||
|
- [browserContext.pages()](#browsercontextpages)
|
||||||
|
- [browserContext.setCookies(cookies)](#browsercontextsetcookiescookies)
|
||||||
|
- [browserContext.setGeolocation(geolocation)](#browsercontextsetgeolocationgeolocation)
|
||||||
|
- [browserContext.setPermissions(origin, permissions[])](#browsercontextsetpermissionsorigin-permissions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### browserContext.clearCookies()
|
#### browserContext.clearCookies()
|
||||||
- returns: <[Promise]>
|
- returns: <[Promise]>
|
||||||
|
|
||||||
@ -584,6 +364,13 @@ await context.setPermissions('https://html5demos.com', ['geolocation']);
|
|||||||
|
|
||||||
[ConsoleMessage] objects are dispatched by page via the ['console'](#event-console) event.
|
[ConsoleMessage] objects are dispatched by page via the ['console'](#event-console) event.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [consoleMessage.args()](#consolemessageargs)
|
||||||
|
- [consoleMessage.location()](#consolemessagelocation)
|
||||||
|
- [consoleMessage.text()](#consolemessagetext)
|
||||||
|
- [consoleMessage.type()](#consolemessagetype)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### consoleMessage.args()
|
#### consoleMessage.args()
|
||||||
- returns: <[Array]<[JSHandle]>>
|
- returns: <[Array]<[JSHandle]>>
|
||||||
|
|
||||||
@ -622,6 +409,14 @@ const playwright = require('playwright').chromium; // Or 'firefox' or 'webkit'.
|
|||||||
})();
|
})();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [dialog.accept([promptText])](#dialogacceptprompttext)
|
||||||
|
- [dialog.defaultValue()](#dialogdefaultvalue)
|
||||||
|
- [dialog.dismiss()](#dialogdismiss)
|
||||||
|
- [dialog.message()](#dialogmessage)
|
||||||
|
- [dialog.type()](#dialogtype)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### dialog.accept([promptText])
|
#### dialog.accept([promptText])
|
||||||
- `promptText` <[string]> A text to enter in prompt. Does not cause any effects if the dialog's `type` is not prompt.
|
- `promptText` <[string]> A text to enter in prompt. Does not cause any effects if the dialog's `type` is not prompt.
|
||||||
- returns: <[Promise]> Promise which resolves when the dialog has been accepted.
|
- returns: <[Promise]> Promise which resolves when the dialog has been accepted.
|
||||||
@ -660,6 +455,30 @@ ElementHandle prevents DOM element from garbage collection unless the handle is
|
|||||||
|
|
||||||
ElementHandle instances can be used as arguments in [`page.$eval()`](#pageevalselector-pagefunction-args) and [`page.evaluate()`](#pageevaluatepagefunction-args) methods.
|
ElementHandle instances can be used as arguments in [`page.$eval()`](#pageevalselector-pagefunction-args) and [`page.evaluate()`](#pageevaluatepagefunction-args) methods.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [elementHandle.$(selector)](#elementhandleselector)
|
||||||
|
- [elementHandle.$$(selector)](#elementhandleselector-1)
|
||||||
|
- [elementHandle.$$eval(selector, pageFunction[, ...args])](#elementhandleevalselector-pagefunction-args)
|
||||||
|
- [elementHandle.$eval(selector, pageFunction[, ...args])](#elementhandleevalselector-pagefunction-args-1)
|
||||||
|
- [elementHandle.boundingBox()](#elementhandleboundingbox)
|
||||||
|
- [elementHandle.click([options])](#elementhandleclickoptions)
|
||||||
|
- [elementHandle.contentFrame()](#elementhandlecontentframe)
|
||||||
|
- [elementHandle.dblclick([options])](#elementhandledblclickoptions)
|
||||||
|
- [elementHandle.fill(value)](#elementhandlefillvalue)
|
||||||
|
- [elementHandle.focus()](#elementhandlefocus)
|
||||||
|
- [elementHandle.hover([options])](#elementhandlehoveroptions)
|
||||||
|
- [elementHandle.ownerFrame()](#elementhandleownerframe)
|
||||||
|
- [elementHandle.press(key[, options])](#elementhandlepresskey-options)
|
||||||
|
- [elementHandle.screenshot([options])](#elementhandlescreenshotoptions)
|
||||||
|
- [elementHandle.scrollIntoViewIfNeeded()](#elementhandlescrollintoviewifneeded)
|
||||||
|
- [elementHandle.select(...values)](#elementhandleselectvalues)
|
||||||
|
- [elementHandle.setInputFiles(...files)](#elementhandlesetinputfilesfiles)
|
||||||
|
- [elementHandle.toString()](#elementhandletostring)
|
||||||
|
- [elementHandle.tripleclick([options])](#elementhandletripleclickoptions)
|
||||||
|
- [elementHandle.type(text[, options])](#elementhandletypetext-options)
|
||||||
|
- [elementHandle.visibleRatio()](#elementhandlevisibleratio)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### elementHandle.$(selector)
|
#### elementHandle.$(selector)
|
||||||
- `selector` <[string]> A selector to query element for
|
- `selector` <[string]> A selector to query element for
|
||||||
- returns: <[Promise]<?[ElementHandle]>>
|
- returns: <[Promise]<?[ElementHandle]>>
|
||||||
@ -931,6 +750,40 @@ An example of getting text from an iframe element:
|
|||||||
console.log(text);
|
console.log(text);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [frame.$(selector)](#frameselector)
|
||||||
|
- [frame.$$(selector)](#frameselector-1)
|
||||||
|
- [frame.$$eval(selector, pageFunction[, ...args])](#frameevalselector-pagefunction-args)
|
||||||
|
- [frame.$eval(selector, pageFunction[, ...args])](#frameevalselector-pagefunction-args-1)
|
||||||
|
- [frame.$wait(selector, pageFunction[, options[, ...args]])](#framewaitselector-pagefunction-options-args)
|
||||||
|
- [frame.addScriptTag(options)](#frameaddscripttagoptions)
|
||||||
|
- [frame.addStyleTag(options)](#frameaddstyletagoptions)
|
||||||
|
- [frame.childFrames()](#framechildframes)
|
||||||
|
- [frame.click(selector[, options])](#frameclickselector-options)
|
||||||
|
- [frame.content()](#framecontent)
|
||||||
|
- [frame.dblclick(selector[, options])](#framedblclickselector-options)
|
||||||
|
- [frame.evaluate(pageFunction[, ...args])](#frameevaluatepagefunction-args)
|
||||||
|
- [frame.evaluateHandle(pageFunction[, ...args])](#frameevaluatehandlepagefunction-args)
|
||||||
|
- [frame.fill(selector, value, options)](#framefillselector-value-options)
|
||||||
|
- [frame.focus(selector, options)](#framefocusselector-options)
|
||||||
|
- [frame.goto(url[, options])](#framegotourl-options)
|
||||||
|
- [frame.hover(selector[, options])](#framehoverselector-options)
|
||||||
|
- [frame.isDetached()](#frameisdetached)
|
||||||
|
- [frame.name()](#framename)
|
||||||
|
- [frame.parentFrame()](#frameparentframe)
|
||||||
|
- [frame.select(selector, value, options)](#frameselectselector-value-options)
|
||||||
|
- [frame.setContent(html[, options])](#framesetcontenthtml-options)
|
||||||
|
- [frame.title()](#frametitle)
|
||||||
|
- [frame.tripleclick(selector[, options])](#frametripleclickselector-options)
|
||||||
|
- [frame.type(selector, text[, options])](#frametypeselector-text-options)
|
||||||
|
- [frame.url()](#frameurl)
|
||||||
|
- [frame.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]])](#framewaitforselectororfunctionortimeout-options-args)
|
||||||
|
- [frame.waitForFunction(pageFunction[, options[, ...args]])](#framewaitforfunctionpagefunction-options-args)
|
||||||
|
- [frame.waitForLoadState([options])](#framewaitforloadstateoptions)
|
||||||
|
- [frame.waitForNavigation([options])](#framewaitfornavigationoptions)
|
||||||
|
- [frame.waitForSelector(selector[, options])](#framewaitforselectorselector-options)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### frame.$(selector)
|
#### frame.$(selector)
|
||||||
- `selector` <[string]> A selector to query frame for
|
- `selector` <[string]> A selector to query frame for
|
||||||
- returns: <[Promise]<?[ElementHandle]>> Promise which resolves to ElementHandle pointing to the frame element.
|
- returns: <[Promise]<?[ElementHandle]>> Promise which resolves to ElementHandle pointing to the frame element.
|
||||||
@ -1435,6 +1288,16 @@ JSHandle prevents the referenced JavaScript object being garbage collected unles
|
|||||||
|
|
||||||
JSHandle instances can be used as arguments in [`page.$eval()`](#pageevalselector-pagefunction-args), [`page.evaluate()`](#pageevaluatepagefunction-args) and [`page.evaluateHandle`](#pageevaluatehandlepagefunction-args) methods.
|
JSHandle instances can be used as arguments in [`page.$eval()`](#pageevalselector-pagefunction-args), [`page.evaluate()`](#pageevaluatepagefunction-args) and [`page.evaluateHandle`](#pageevaluatehandlepagefunction-args) methods.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [jsHandle.asElement()](#jshandleaselement)
|
||||||
|
- [jsHandle.dispose()](#jshandledispose)
|
||||||
|
- [jsHandle.evaluate(pageFunction[, ...args])](#jshandleevaluatepagefunction-args)
|
||||||
|
- [jsHandle.evaluateHandle(pageFunction[, ...args])](#jshandleevaluatehandlepagefunction-args)
|
||||||
|
- [jsHandle.getProperties()](#jshandlegetproperties)
|
||||||
|
- [jsHandle.getProperty(propertyName)](#jshandlegetpropertypropertyname)
|
||||||
|
- [jsHandle.jsonValue()](#jshandlejsonvalue)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### jsHandle.asElement()
|
#### jsHandle.asElement()
|
||||||
- returns: <?[ElementHandle]>
|
- returns: <?[ElementHandle]>
|
||||||
|
|
||||||
@ -1530,6 +1393,14 @@ await page.keyboard.up('Shift');
|
|||||||
|
|
||||||
> **NOTE** On MacOS, keyboard shortcuts like `⌘ A` -> Select All do not work. See [#1313](https://github.com/GoogleChrome/puppeteer/issues/1313)
|
> **NOTE** On MacOS, keyboard shortcuts like `⌘ A` -> Select All do not work. See [#1313](https://github.com/GoogleChrome/puppeteer/issues/1313)
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [keyboard.down(key[, options])](#keyboarddownkey-options)
|
||||||
|
- [keyboard.press(key[, options])](#keyboardpresskey-options)
|
||||||
|
- [keyboard.sendCharacters(text)](#keyboardsendcharacterstext)
|
||||||
|
- [keyboard.type(text[, options])](#keyboardtypetext-options)
|
||||||
|
- [keyboard.up(key)](#keyboardupkey)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### keyboard.down(key[, options])
|
#### keyboard.down(key[, options])
|
||||||
- `key` <[string]> Name of key to press, such as `ArrowLeft`. See [USKeyboardLayout] for a list of all key names.
|
- `key` <[string]> Name of key to press, such as `ArrowLeft`. See [USKeyboardLayout] for a list of all key names.
|
||||||
- `options` <[Object]>
|
- `options` <[Object]>
|
||||||
@ -1611,6 +1482,15 @@ await page.mouse.move(0, 0);
|
|||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [mouse.click(x, y[, options])](#mouseclickx-y-options)
|
||||||
|
- [mouse.dblclick(x, y[, options])](#mousedblclickx-y-options)
|
||||||
|
- [mouse.down([options])](#mousedownoptions)
|
||||||
|
- [mouse.move(x, y[, options])](#mousemovex-y-options)
|
||||||
|
- [mouse.tripleclick(x, y[, options])](#mousetripleclickx-y-options)
|
||||||
|
- [mouse.up([options])](#mouseupoptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### mouse.click(x, y[, options])
|
#### mouse.click(x, y[, options])
|
||||||
- `x` <[number]>
|
- `x` <[number]>
|
||||||
- `y` <[number]>
|
- `y` <[number]>
|
||||||
@ -1716,6 +1596,83 @@ page.on('request', logRequest);
|
|||||||
page.removeListener('request', logRequest);
|
page.removeListener('request', logRequest);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [event: 'close'](#event-close)
|
||||||
|
- [event: 'console'](#event-console)
|
||||||
|
- [event: 'dialog'](#event-dialog)
|
||||||
|
- [event: 'domcontentloaded'](#event-domcontentloaded)
|
||||||
|
- [event: 'filechooser'](#event-filechooser)
|
||||||
|
- [event: 'frameattached'](#event-frameattached)
|
||||||
|
- [event: 'framedetached'](#event-framedetached)
|
||||||
|
- [event: 'framenavigated'](#event-framenavigated)
|
||||||
|
- [event: 'load'](#event-load)
|
||||||
|
- [event: 'pageerror'](#event-pageerror)
|
||||||
|
- [event: 'popup'](#event-popup)
|
||||||
|
- [event: 'request'](#event-request)
|
||||||
|
- [event: 'requestfailed'](#event-requestfailed)
|
||||||
|
- [event: 'requestfinished'](#event-requestfinished)
|
||||||
|
- [event: 'response'](#event-response)
|
||||||
|
- [event: 'workercreated'](#event-workercreated)
|
||||||
|
- [event: 'workerdestroyed'](#event-workerdestroyed)
|
||||||
|
- [page.$(selector)](#pageselector)
|
||||||
|
- [page.$$(selector)](#pageselector-1)
|
||||||
|
- [page.$$eval(selector, pageFunction[, ...args])](#pageevalselector-pagefunction-args)
|
||||||
|
- [page.$eval(selector, pageFunction[, ...args])](#pageevalselector-pagefunction-args-1)
|
||||||
|
- [page.$wait(selector, pageFunction[, options[, ...args]])](#pagewaitselector-pagefunction-options-args)
|
||||||
|
- [page.accessibility](#pageaccessibility)
|
||||||
|
- [page.addScriptTag(options)](#pageaddscripttagoptions)
|
||||||
|
- [page.addStyleTag(options)](#pageaddstyletagoptions)
|
||||||
|
- [page.authenticate(credentials)](#pageauthenticatecredentials)
|
||||||
|
- [page.browserContext()](#pagebrowsercontext)
|
||||||
|
- [page.click(selector[, options])](#pageclickselector-options)
|
||||||
|
- [page.close([options])](#pagecloseoptions)
|
||||||
|
- [page.content()](#pagecontent)
|
||||||
|
- [page.coverage](#pagecoverage)
|
||||||
|
- [page.dblclick(selector[, options])](#pagedblclickselector-options)
|
||||||
|
- [page.emulateMedia(options)](#pageemulatemediaoptions)
|
||||||
|
- [page.evaluate(pageFunction[, ...args])](#pageevaluatepagefunction-args)
|
||||||
|
- [page.evaluateHandle(pageFunction[, ...args])](#pageevaluatehandlepagefunction-args)
|
||||||
|
- [page.evaluateOnNewDocument(pageFunction[, ...args])](#pageevaluateonnewdocumentpagefunction-args)
|
||||||
|
- [page.exposeFunction(name, playwrightFunction)](#pageexposefunctionname-playwrightfunction)
|
||||||
|
- [page.fill(selector, value, options)](#pagefillselector-value-options)
|
||||||
|
- [page.focus(selector, options)](#pagefocusselector-options)
|
||||||
|
- [page.frames()](#pageframes)
|
||||||
|
- [page.goBack([options])](#pagegobackoptions)
|
||||||
|
- [page.goForward([options])](#pagegoforwardoptions)
|
||||||
|
- [page.goto(url[, options])](#pagegotourl-options)
|
||||||
|
- [page.hover(selector[, options])](#pagehoverselector-options)
|
||||||
|
- [page.isClosed()](#pageisclosed)
|
||||||
|
- [page.keyboard](#pagekeyboard)
|
||||||
|
- [page.mainFrame()](#pagemainframe)
|
||||||
|
- [page.mouse](#pagemouse)
|
||||||
|
- [page.pdf([options])](#pagepdfoptions)
|
||||||
|
- [page.reload([options])](#pagereloadoptions)
|
||||||
|
- [page.screenshot([options])](#pagescreenshotoptions)
|
||||||
|
- [page.select(selector, value, options)](#pageselectselector-value-options)
|
||||||
|
- [page.setCacheEnabled([enabled])](#pagesetcacheenabledenabled)
|
||||||
|
- [page.setContent(html[, options])](#pagesetcontenthtml-options)
|
||||||
|
- [page.setDefaultNavigationTimeout(timeout)](#pagesetdefaultnavigationtimeouttimeout)
|
||||||
|
- [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout)
|
||||||
|
- [page.setExtraHTTPHeaders(headers)](#pagesetextrahttpheadersheaders)
|
||||||
|
- [page.setOfflineMode(enabled)](#pagesetofflinemodeenabled)
|
||||||
|
- [page.setRequestInterception(enabled)](#pagesetrequestinterceptionenabled)
|
||||||
|
- [page.setViewport(viewport)](#pagesetviewportviewport)
|
||||||
|
- [page.title()](#pagetitle)
|
||||||
|
- [page.tripleclick(selector[, options])](#pagetripleclickselector-options)
|
||||||
|
- [page.type(selector, text[, options])](#pagetypeselector-text-options)
|
||||||
|
- [page.url()](#pageurl)
|
||||||
|
- [page.viewport()](#pageviewport)
|
||||||
|
- [page.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]])](#pagewaitforselectororfunctionortimeout-options-args)
|
||||||
|
- [page.waitForEvent(event[, optionsOrPredicate])](#pagewaitforeventevent-optionsorpredicate)
|
||||||
|
- [page.waitForFunction(pageFunction[, options[, ...args]])](#pagewaitforfunctionpagefunction-options-args)
|
||||||
|
- [page.waitForLoadState([options])](#pagewaitforloadstateoptions)
|
||||||
|
- [page.waitForNavigation([options])](#pagewaitfornavigationoptions)
|
||||||
|
- [page.waitForRequest(urlOrPredicate[, options])](#pagewaitforrequesturlorpredicate-options)
|
||||||
|
- [page.waitForResponse(urlOrPredicate[, options])](#pagewaitforresponseurlorpredicate-options)
|
||||||
|
- [page.waitForSelector(selector[, options])](#pagewaitforselectorselector-options)
|
||||||
|
- [page.workers()](#pageworkers)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### event: 'close'
|
#### event: 'close'
|
||||||
|
|
||||||
Emitted when the page closes.
|
Emitted when the page closes.
|
||||||
@ -2812,6 +2769,22 @@ If request fails at some point, then instead of `'requestfinished'` event (and p
|
|||||||
|
|
||||||
If request gets a 'redirect' response, the request is successfully finished with the 'requestfinished' event, and a new request is issued to a redirected url.
|
If request gets a 'redirect' response, the request is successfully finished with the 'requestfinished' event, and a new request is issued to a redirected url.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [request.abort([errorCode])](#requestaborterrorcode)
|
||||||
|
- [request.continue([overrides])](#requestcontinueoverrides)
|
||||||
|
- [request.failure()](#requestfailure)
|
||||||
|
- [request.frame()](#requestframe)
|
||||||
|
- [request.fulfill(response)](#requestfulfillresponse)
|
||||||
|
- [request.headers()](#requestheaders)
|
||||||
|
- [request.isNavigationRequest()](#requestisnavigationrequest)
|
||||||
|
- [request.method()](#requestmethod)
|
||||||
|
- [request.postData()](#requestpostdata)
|
||||||
|
- [request.redirectChain()](#requestredirectchain)
|
||||||
|
- [request.resourceType()](#requestresourcetype)
|
||||||
|
- [request.response()](#requestresponse)
|
||||||
|
- [request.url()](#requesturl)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### request.abort([errorCode])
|
#### request.abort([errorCode])
|
||||||
- `errorCode` <[string]> Optional error code. Defaults to `failed`, could be
|
- `errorCode` <[string]> Optional error code. Defaults to `failed`, could be
|
||||||
one of the following:
|
one of the following:
|
||||||
@ -2958,6 +2931,20 @@ ResourceType will be one of the following: `document`, `stylesheet`, `image`, `m
|
|||||||
|
|
||||||
[Response] class represents responses which are received by page.
|
[Response] class represents responses which are received by page.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [response.buffer()](#responsebuffer)
|
||||||
|
- [response.frame()](#responseframe)
|
||||||
|
- [response.headers()](#responseheaders)
|
||||||
|
- [response.json()](#responsejson)
|
||||||
|
- [response.ok()](#responseok)
|
||||||
|
- [response.remoteAddress()](#responseremoteaddress)
|
||||||
|
- [response.request()](#responserequest)
|
||||||
|
- [response.status()](#responsestatus)
|
||||||
|
- [response.statusText()](#responsestatustext)
|
||||||
|
- [response.text()](#responsetext)
|
||||||
|
- [response.url()](#responseurl)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### response.buffer()
|
#### response.buffer()
|
||||||
- returns: <Promise<[Buffer]>> Promise which resolves to a buffer with response body.
|
- returns: <Promise<[Buffer]>> Promise which resolves to a buffer with response body.
|
||||||
|
|
||||||
@ -3020,6 +3007,10 @@ access to the Blink Accessibility Tree.
|
|||||||
|
|
||||||
Most of the accessibility tree gets filtered out when converting from Blink AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
|
Most of the accessibility tree gets filtered out when converting from Blink AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [accessibility.snapshot([options])](#accessibilitysnapshotoptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### accessibility.snapshot([options])
|
#### accessibility.snapshot([options])
|
||||||
- `options` <[Object]>
|
- `options` <[Object]>
|
||||||
- `interestingOnly` <[boolean]> Prune uninteresting nodes from the tree. Defaults to `true`.
|
- `interestingOnly` <[boolean]> Prune uninteresting nodes from the tree. Defaults to `true`.
|
||||||
@ -3115,6 +3106,13 @@ console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);
|
|||||||
_To output coverage in a form consumable by [Istanbul](https://github.com/istanbuljs),
|
_To output coverage in a form consumable by [Istanbul](https://github.com/istanbuljs),
|
||||||
see [playwright-to-istanbul](https://github.com/istanbuljs/playwright-to-istanbul)._
|
see [playwright-to-istanbul](https://github.com/istanbuljs/playwright-to-istanbul)._
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [coverage.startCSSCoverage([options])](#coveragestartcsscoverageoptions)
|
||||||
|
- [coverage.startJSCoverage([options])](#coveragestartjscoverageoptions)
|
||||||
|
- [coverage.stopCSSCoverage()](#coveragestopcsscoverage)
|
||||||
|
- [coverage.stopJSCoverage()](#coveragestopjscoverage)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### coverage.startCSSCoverage([options])
|
#### coverage.startCSSCoverage([options])
|
||||||
- `options` <[Object]> Set of configurable options for coverage
|
- `options` <[Object]> Set of configurable options for coverage
|
||||||
- `resetOnNavigation` <[boolean]> Whether to reset coverage on every navigation. Defaults to `true`.
|
- `resetOnNavigation` <[boolean]> Whether to reset coverage on every navigation. Defaults to `true`.
|
||||||
@ -3163,6 +3161,12 @@ for (const worker of page.workers())
|
|||||||
console.log(' ' + worker.url());
|
console.log(' ' + worker.url());
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [worker.evaluate(pageFunction[, ...args])](#workerevaluatepagefunction-args)
|
||||||
|
- [worker.evaluateHandle(pageFunction[, ...args])](#workerevaluatehandlepagefunction-args)
|
||||||
|
- [worker.url()](#workerurl)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### worker.evaluate(pageFunction[, ...args])
|
#### worker.evaluate(pageFunction[, ...args])
|
||||||
- `pageFunction` <[function]|[string]> Function to be evaluated in the worker context
|
- `pageFunction` <[function]|[string]> Function to be evaluated in the worker context
|
||||||
- `...args` <...[Serializable]|[JSHandle]> Arguments to pass to `pageFunction`
|
- `...args` <...[Serializable]|[JSHandle]> Arguments to pass to `pageFunction`
|
||||||
@ -3188,6 +3192,13 @@ If the function passed to the `worker.evaluateHandle` returns a [Promise], then
|
|||||||
|
|
||||||
* extends: [Playwright]
|
* extends: [Playwright]
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [chromiumPlaywright.connect(options)](#chromiumplaywrightconnectoptions)
|
||||||
|
- [chromiumPlaywright.defaultArgs([options])](#chromiumplaywrightdefaultargsoptions)
|
||||||
|
- [chromiumPlaywright.launch([options])](#chromiumplaywrightlaunchoptions)
|
||||||
|
- [chromiumPlaywright.launchServer([options])](#chromiumplaywrightlaunchserveroptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### chromiumPlaywright.connect(options)
|
#### chromiumPlaywright.connect(options)
|
||||||
- `options` <[Object]>
|
- `options` <[Object]>
|
||||||
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
||||||
@ -3273,6 +3284,19 @@ await page.goto('https://www.google.com');
|
|||||||
await browser.stopTracing();
|
await browser.stopTracing();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [event: 'targetchanged'](#event-targetchanged)
|
||||||
|
- [event: 'targetcreated'](#event-targetcreated)
|
||||||
|
- [event: 'targetdestroyed'](#event-targetdestroyed)
|
||||||
|
- [chromiumBrowser.browserTarget()](#chromiumbrowserbrowsertarget)
|
||||||
|
- [chromiumBrowser.pageTarget(page)](#chromiumbrowserpagetargetpage)
|
||||||
|
- [chromiumBrowser.serviceWorker(target)](#chromiumbrowserserviceworkertarget)
|
||||||
|
- [chromiumBrowser.startTracing(page, [options])](#chromiumbrowserstarttracingpage-options)
|
||||||
|
- [chromiumBrowser.stopTracing()](#chromiumbrowserstoptracing)
|
||||||
|
- [chromiumBrowser.targets(context)](#chromiumbrowsertargetscontext)
|
||||||
|
- [chromiumBrowser.waitForTarget(predicate[, options])](#chromiumbrowserwaitfortargetpredicate-options)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### event: 'targetchanged'
|
#### event: 'targetchanged'
|
||||||
- <[Target]>
|
- <[Target]>
|
||||||
|
|
||||||
@ -3346,6 +3370,14 @@ const newWindowTarget = await browser.chromium.waitForTarget(target => target.ur
|
|||||||
|
|
||||||
### class: ChromiumBrowserServer
|
### class: ChromiumBrowserServer
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [chromiumBrowserServer.close()](#chromiumbrowserserverclose)
|
||||||
|
- [chromiumBrowserServer.connect()](#chromiumbrowserserverconnect)
|
||||||
|
- [chromiumBrowserServer.connectOptions()](#chromiumbrowserserverconnectoptions)
|
||||||
|
- [chromiumBrowserServer.process()](#chromiumbrowserserverprocess)
|
||||||
|
- [chromiumBrowserServer.wsEndpoint()](#chromiumbrowserserverwsendpoint)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### chromiumBrowserServer.close()
|
#### chromiumBrowserServer.close()
|
||||||
- returns: <[Promise]>
|
- returns: <[Promise]>
|
||||||
|
|
||||||
@ -3398,6 +3430,11 @@ await client.send('Animation.setPlaybackRate', {
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [chromiumSession.detach()](#chromiumsessiondetach)
|
||||||
|
- [chromiumSession.send(method[, params])](#chromiumsessionsendmethod-params)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### chromiumSession.detach()
|
#### chromiumSession.detach()
|
||||||
- returns: <[Promise]>
|
- returns: <[Promise]>
|
||||||
|
|
||||||
@ -3411,6 +3448,16 @@ to send messages.
|
|||||||
|
|
||||||
### class: ChromiumTarget
|
### class: ChromiumTarget
|
||||||
|
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [chromiumTarget.browserContext()](#chromiumtargetbrowsercontext)
|
||||||
|
- [chromiumTarget.createCDPSession()](#chromiumtargetcreatecdpsession)
|
||||||
|
- [chromiumTarget.opener()](#chromiumtargetopener)
|
||||||
|
- [chromiumTarget.page()](#chromiumtargetpage)
|
||||||
|
- [chromiumTarget.type()](#chromiumtargettype)
|
||||||
|
- [chromiumTarget.url()](#chromiumtargeturl)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### chromiumTarget.browserContext()
|
#### chromiumTarget.browserContext()
|
||||||
|
|
||||||
- returns: <[BrowserContext]>
|
- returns: <[BrowserContext]>
|
||||||
@ -3444,6 +3491,13 @@ Identifies what kind of target this is. Can be `"page"`, [`"background_page"`](h
|
|||||||
|
|
||||||
* extends: [Playwright]
|
* extends: [Playwright]
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [firefoxPlaywright.connect(options)](#firefoxplaywrightconnectoptions)
|
||||||
|
- [firefoxPlaywright.defaultArgs([options])](#firefoxplaywrightdefaultargsoptions)
|
||||||
|
- [firefoxPlaywright.launch([options])](#firefoxplaywrightlaunchoptions)
|
||||||
|
- [firefoxPlaywright.launchServer([options])](#firefoxplaywrightlaunchserveroptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### firefoxPlaywright.connect(options)
|
#### firefoxPlaywright.connect(options)
|
||||||
- `options` <[Object]>
|
- `options` <[Object]>
|
||||||
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
||||||
@ -3510,6 +3564,14 @@ Firefox browser instance does not expose Firefox-specific features.
|
|||||||
|
|
||||||
### class: FirefoxBrowserServer
|
### class: FirefoxBrowserServer
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [firefoxBrowserServer.close()](#firefoxbrowserserverclose)
|
||||||
|
- [firefoxBrowserServer.connect()](#firefoxbrowserserverconnect)
|
||||||
|
- [firefoxBrowserServer.connectOptions()](#firefoxbrowserserverconnectoptions)
|
||||||
|
- [firefoxBrowserServer.process()](#firefoxbrowserserverprocess)
|
||||||
|
- [firefoxBrowserServer.wsEndpoint()](#firefoxbrowserserverwsendpoint)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### firefoxBrowserServer.close()
|
#### firefoxBrowserServer.close()
|
||||||
- returns: <[Promise]>
|
- returns: <[Promise]>
|
||||||
|
|
||||||
@ -3540,6 +3602,12 @@ Browser websocket endpoint which can be used as an argument to [firefoxPlaywrigh
|
|||||||
|
|
||||||
* extends: [Playwright]
|
* extends: [Playwright]
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [webkitPlaywright.defaultArgs([options])](#webkitplaywrightdefaultargsoptions)
|
||||||
|
- [webkitPlaywright.launch([options])](#webkitplaywrightlaunchoptions)
|
||||||
|
- [webkitPlaywright.launchServer([options])](#webkitplaywrightlaunchserveroptions)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### webkitPlaywright.defaultArgs([options])
|
#### webkitPlaywright.defaultArgs([options])
|
||||||
- `options` <[Object]> Set of configurable options to set on the browser. Can have the following fields:
|
- `options` <[Object]> Set of configurable options to set on the browser. Can have the following fields:
|
||||||
- `headless` <[boolean]> Whether to run WebKit in headless mode. Defaults to `true`.
|
- `headless` <[boolean]> Whether to run WebKit in headless mode. Defaults to `true`.
|
||||||
@ -3597,6 +3665,13 @@ WebKit browser instance does not expose WebKit-specific features.
|
|||||||
|
|
||||||
### class: WebKitBrowserServer
|
### class: WebKitBrowserServer
|
||||||
|
|
||||||
|
<!-- GEN:toc -->
|
||||||
|
- [webKitBrowserServer.close()](#webkitbrowserserverclose)
|
||||||
|
- [webKitBrowserServer.connect()](#webkitbrowserserverconnect)
|
||||||
|
- [webKitBrowserServer.connectOptions()](#webkitbrowserserverconnectoptions)
|
||||||
|
- [webKitBrowserServer.process()](#webkitbrowserserverprocess)
|
||||||
|
<!-- GEN:stop -->
|
||||||
|
|
||||||
#### webKitBrowserServer.close()
|
#### webKitBrowserServer.close()
|
||||||
- returns: <[Promise]>
|
- returns: <[Promise]>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ const Message = require('../Message');
|
|||||||
|
|
||||||
module.exports.ensureReleasedAPILinks = function(sources, version) {
|
module.exports.ensureReleasedAPILinks = function(sources, version) {
|
||||||
// Release version is everything that doesn't include "-".
|
// Release version is everything that doesn't include "-".
|
||||||
const apiLinkRegex = /https:\/\/github.com\/GoogleChrome\/playwright\/blob\/v[^/]*\/docs\/api.md/ig;
|
const apiLinkRegex = /https:\/\/github.com\/Microsoft\/playwright\/blob\/v[^/]*\/docs\/api.md/ig;
|
||||||
const lastReleasedAPI = `https://github.com/Microsoft/playwright/blob/v${version.split('-')[0]}/docs/api.md`;
|
const lastReleasedAPI = `https://github.com/Microsoft/playwright/blob/v${version.split('-')[0]}/docs/api.md`;
|
||||||
|
|
||||||
const messages = [];
|
const messages = [];
|
||||||
@ -69,7 +69,9 @@ module.exports.runCommands = function(sources, version) {
|
|||||||
else if (command.name === 'empty-if-release')
|
else if (command.name === 'empty-if-release')
|
||||||
newText = isReleaseVersion ? '' : command.originalText;
|
newText = isReleaseVersion ? '' : command.originalText;
|
||||||
else if (command.name === 'toc')
|
else if (command.name === 'toc')
|
||||||
newText = generateTableOfContents(command.source.text().substring(command.to));
|
newText = generateTableOfContents(command.source.text(), command.to, false /* topLevelOnly */);
|
||||||
|
else if (command.name === 'toc-top-level')
|
||||||
|
newText = generateTableOfContents(command.source.text(), command.to, true /* topLevelOnly */);
|
||||||
if (newText === null)
|
if (newText === null)
|
||||||
messages.push(Message.error(`Unknown command 'gen:${command.name}'`));
|
messages.push(Message.error(`Unknown command 'gen:${command.name}'`));
|
||||||
else if (applyCommand(command, newText))
|
else if (applyCommand(command, newText))
|
||||||
@ -91,22 +93,22 @@ function applyCommand(command, editText) {
|
|||||||
return command.source.setText(newText);
|
return command.source.setText(newText);
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateTableOfContents(mdText) {
|
function getTOCEntriesForText(text) {
|
||||||
const ids = new Set();
|
const ids = new Set();
|
||||||
const titles = [];
|
const titles = [];
|
||||||
let insideCodeBlock = false;
|
let insideCodeBlock = false;
|
||||||
for (const aLine of mdText.split('\n')) {
|
let offset = 0;
|
||||||
|
text.split('\n').forEach((aLine, lineNumber) => {
|
||||||
const line = aLine.trim();
|
const line = aLine.trim();
|
||||||
if (line.startsWith('```')) {
|
if (line.startsWith('```'))
|
||||||
insideCodeBlock = !insideCodeBlock;
|
insideCodeBlock = !insideCodeBlock;
|
||||||
continue;
|
else if (!insideCodeBlock && line.startsWith('#'))
|
||||||
}
|
titles.push({line, offset: offset + lineNumber});
|
||||||
if (!insideCodeBlock && line.startsWith('#'))
|
offset += aLine.length;
|
||||||
titles.push(line);
|
});
|
||||||
}
|
let tocEntries = [];
|
||||||
const tocEntries = [];
|
for (const {line, offset} of titles) {
|
||||||
for (const title of titles) {
|
const [, nesting, name] = line.match(/^(#+)\s+(.*)$/);
|
||||||
const [, nesting, name] = title.match(/^(#+)\s+(.*)$/);
|
|
||||||
const delinkifiedName = name.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
|
const delinkifiedName = name.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
|
||||||
const id = delinkifiedName.trim().toLowerCase().replace(/\s/g, '-').replace(/[^-0-9a-zа-яё]/ig, '');
|
const id = delinkifiedName.trim().toLowerCase().replace(/\s/g, '-').replace(/[^-0-9a-zа-яё]/ig, '');
|
||||||
let dedupId = id;
|
let dedupId = id;
|
||||||
@ -117,12 +119,33 @@ function generateTableOfContents(mdText) {
|
|||||||
tocEntries.push({
|
tocEntries.push({
|
||||||
level: nesting.length,
|
level: nesting.length,
|
||||||
name: delinkifiedName,
|
name: delinkifiedName,
|
||||||
id: dedupId
|
id: dedupId,
|
||||||
|
offset,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
return tocEntries;
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateTableOfContents(text, offset, topLevelOnly) {
|
||||||
|
const allTocEntries = getTOCEntriesForText(text);
|
||||||
|
|
||||||
|
let tocEntries = [];
|
||||||
|
let nesting = 0;
|
||||||
|
for (const tocEntry of allTocEntries) {
|
||||||
|
if (tocEntry.offset < offset)
|
||||||
|
continue;
|
||||||
|
if (tocEntries.length) {
|
||||||
|
nesting += tocEntry.level - tocEntries[tocEntries.length - 1].level;
|
||||||
|
if (nesting < 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
tocEntries.push(tocEntry);
|
||||||
|
}
|
||||||
|
|
||||||
const minLevel = Math.min(...tocEntries.map(entry => entry.level));
|
const minLevel = Math.min(...tocEntries.map(entry => entry.level));
|
||||||
tocEntries.forEach(entry => entry.level -= minLevel);
|
tocEntries.forEach(entry => entry.level -= minLevel);
|
||||||
|
if (topLevelOnly)
|
||||||
|
tocEntries = tocEntries.filter(entry => !entry.level);
|
||||||
return '\n' + tocEntries.map(entry => {
|
return '\n' + tocEntries.map(entry => {
|
||||||
const prefix = entry.level % 2 === 0 ? '-' : '*';
|
const prefix = entry.level % 2 === 0 ? '-' : '*';
|
||||||
const padding = ' '.repeat(entry.level);
|
const padding = ' '.repeat(entry.level);
|
||||||
|
@ -192,6 +192,32 @@ describe('runCommands', function() {
|
|||||||
### some [link](#foobar) here
|
### some [link](#foobar) here
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
it('should be able to create sub-table-of-contents', () => {
|
||||||
|
const source = new Source('doc.md', `
|
||||||
|
## First
|
||||||
|
<!-- gen:toc -->XXX<!-- gen:stop -->
|
||||||
|
### first.1
|
||||||
|
### first.2
|
||||||
|
#### first.2.1
|
||||||
|
## Second
|
||||||
|
`);
|
||||||
|
const messages = runCommands([source], '1.3.0');
|
||||||
|
expect(messages.length).toBe(1);
|
||||||
|
expect(messages[0].type).toBe('warning');
|
||||||
|
expect(messages[0].text).toContain('doc.md');
|
||||||
|
expect(source.text()).toBe(`
|
||||||
|
## First
|
||||||
|
<!-- gen:toc -->
|
||||||
|
- [first.1](#first1)
|
||||||
|
- [first.2](#first2)
|
||||||
|
* [first.2.1](#first21)
|
||||||
|
<!-- gen:stop -->
|
||||||
|
### first.1
|
||||||
|
### first.2
|
||||||
|
#### first.2.1
|
||||||
|
## Second
|
||||||
|
`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
it('should work with multiple commands', function() {
|
it('should work with multiple commands', function() {
|
||||||
const source = new Source('doc.md', `
|
const source = new Source('doc.md', `
|
||||||
|
Loading…
x
Reference in New Issue
Block a user