website/versioned_docs/version-24.40.0/api/puppeteer.page.md
Page provides methods to interact with a single tab or extension background page in the browser.
:::note
One Browser instance might have multiple Page instances.
:::
export declare abstract class Page extends EventEmitter<PageEvents>
Extends: EventEmitter<PageEvents>
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Page class.
This example creates a page, navigates it to a URL, and then saves a screenshot:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'screenshot.png'});
await browser.close();
The Page class extends from Puppeteer's EventEmitter class and will emit various events which are documented in the PageEvent enum.
This example logs a message for a single page load event:
page.once('load', () => console.log('Page loaded!'));
To unsubscribe from events use the EventEmitter.off() method:
function logRequest(interceptedRequest) {
console.log('A request was made:', interceptedRequest.url());
}
page.on('request', logRequest);
// Sometime later...
page.off('request', logRequest);
Property
</th><th>Modifiers
</th><th>Type
</th><th>Description
</th></tr></thead> <tbody><tr><td><span id="accessibility">accessibility</span>
</td><td>readonly
The Accessibility class provides methods for inspecting the browser's accessibility tree. The accessibility tree is used by assistive technology such as screen readers or switches.
Remarks:
Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.
Blink - Chrome's rendering engine - has a concept of "accessibility tree", which is then translated into different platform-specific APIs. Accessibility namespace gives users 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, Puppeteer tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Accessibility class.
<span id="bluetooth">bluetooth</span>
</td><td>readonly
Exposes the bluetooth emulation abilities.
Remarks:
Web Bluetooth specification requires the emulated adapters should be isolated per top-level navigable. However, at the moment Chromium's bluetooth emulation implementation is tight to the browser context, not the page. This means the bluetooth emulation exposed from different pages of the same browser context would interfere their states.
</td></tr> <tr><td><span id="coverage">coverage</span>
</td><td>readonly
The Coverage class provides methods to gather information about parts of JavaScript and CSS that were used by the page.
Remarks:
To output coverage in a form consumable by Istanbul, see puppeteer-to-istanbul.
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Coverage class.
<span id="keyboard">keyboard</span>
</td><td>readonly
Keyboard provides an api for managing a virtual keyboard. The high level api is Keyboard.type(), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page.
Remarks:
For finer control, you can use Keyboard.down(), Keyboard.up(), and Keyboard.sendCharacter() to manually fire events as if they were generated from a real keyboard.
On macOS, keyboard shortcuts like ⌘ A -> Select All do not work. See #1313.
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Keyboard class.
<span id="mouse">mouse</span>
</td><td>readonly
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
Remarks:
Every page object has its own Mouse, accessible with Page.mouse.
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Mouse class.
<span id="touchscreen">touchscreen</span>
</td><td>readonly
The Touchscreen class exposes touchscreen events.
</td></tr> <tr><td><span id="tracing">tracing</span>
</td><td>readonly
The Tracing class exposes the tracing audit interface.
Remarks:
You can use tracing.start and tracing.stop to create a trace file which can be opened in Chrome DevTools or timeline viewer.
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Tracing class.
Method
</th><th>Modifiers
</th><th>Description
</th></tr></thead> <tbody><tr><td><span id="_">$(selector)</span>
</td><td> </td><td>Finds the first element that matches the selector. If no element matches the selector, the return value resolves to null.
Remarks:
Shortcut for Page.mainFrame().$(selector).
</td></tr> <tr><td><span id="__">$$(selector, options)</span>
</td><td> </td><td>Finds elements on the page that match the selector. If no elements match the selector, the return value resolves to [].
Remarks:
Shortcut for Page.mainFrame().$$(selector).
</td></tr> <tr><td><span id="__eval">$$eval(selector, pageFunction, args)</span>
</td><td> </td><td>This method returns all elements matching the selector and passes the resulting array as the first argument to the pageFunction.
Remarks:
If pageFunction returns a promise $$eval will wait for the promise to resolve and then return its value.
<span id="_eval">$eval(selector, pageFunction, args)</span>
</td><td> </td><td>This method finds the first element within the page that matches the selector and passes the result as the first argument to the pageFunction.
Remarks:
If no element is found matching selector, the method will throw an error.
If pageFunction returns a promise $eval will wait for the promise to resolve and then return its value.
<span id="addscripttag">addScriptTag(options)</span>
</td><td> </td><td>Adds a <script> tag into the page with the desired URL or content.
Remarks:
Shortcut for page.mainFrame().addScriptTag(options).
</td></tr> <tr><td><span id="addstyletag">addStyleTag(options)</span>
</td><td> </td><td>Adds a <link rel="stylesheet"> tag into the page with the desired URL or a <style type="text/css"> tag with the content.
Shortcut for page.mainFrame().addStyleTag(options).
</td></tr> <tr><td><span id="addstyletag">addStyleTag(options)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="authenticate">authenticate(credentials)</span>
</td><td> </td><td>Provide credentials for HTTP authentication.
:::note
Request interception will be turned on behind the scenes to implement authentication. This might affect performance.
:::
Remarks:
To disable authentication, pass null.
<span id="bringtofront">bringToFront()</span>
</td><td> </td><td>Brings page to front (activates tab).
</td></tr> <tr><td><span id="browser">browser()</span>
</td><td> </td><td>Get the browser the page belongs to.
</td></tr> <tr><td><span id="browsercontext">browserContext()</span>
</td><td> </td><td>Get the browser context that the page belongs to.
</td></tr> <tr><td><span id="captureheapsnapshot">captureHeapSnapshot(options)</span>
</td><td> </td><td>Captures a snapshot of the JavaScript heap and writes it to a file.
</td></tr> <tr><td><span id="click">click(selector, options)</span>
</td><td> </td><td>This method fetches an element with selector, scrolls it into view if needed, and then uses Page.mouse to click in the center of the element. If there's no element matching selector, the method throws an error.
Remarks:
Bear in mind that if click() triggers a navigation event and there's a separate page.waitForNavigation() promise to be resolved, you may end up with a race condition that yields unexpected results. The correct pattern for click and wait for navigation is the following:
const [response] = await Promise.all([
page.waitForNavigation(waitOptions),
page.click(selector, clickOptions),
]);
Shortcut for page.mainFrame().click(selector[, options]).
</td></tr> <tr><td><span id="close">close(options)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="content">content()</span>
</td><td> </td><td>The full HTML contents of the page, including the DOCTYPE.
</td></tr> <tr><td><span id="cookies">cookies(urls)</span>
</td><td>deprecated
If no URLs are specified, this method returns cookies for the current page URL. If URLs are specified, only cookies for those URLs are returned.
Deprecated:
Page-level cookie API is deprecated. Use Browser.cookies() or BrowserContext.cookies() instead.
</td></tr> <tr><td><span id="createcdpsession">createCDPSession()</span>
</td><td> </td><td>Creates a Chrome Devtools Protocol session attached to the page.
</td></tr> <tr><td><span id="createpdfstream">createPDFStream(options)</span>
</td><td> </td><td>Generates a PDF of the page with the print CSS media type.
Remarks:
To generate a PDF with the screen media type, call `page.emulateMediaType('screen')` before calling page.pdf().
By default, page.pdf() generates a pdf with modified colors for printing. Use the `-webkit-print-color-adjust` property to force rendering of exact colors.
<span id="deletecookie">deleteCookie(cookies)</span>
</td><td>deprecated
Deprecated:
Page-level cookie API is deprecated. Use Browser.deleteCookie(), BrowserContext.deleteCookie(), Browser.deleteMatchingCookies() or BrowserContext.deleteMatchingCookies() instead.
</td></tr> <tr><td><span id="emulate">emulate(device)</span>
</td><td> </td><td>Emulates a given device's metrics and user agent.
To aid emulation, Puppeteer provides a list of known devices that can be via KnownDevices.
Remarks:
This method is a shortcut for calling two methods: Page.setUserAgent() and Page.setViewport().
This method will resize the page. A lot of websites don't expect phones to change size, so you should emulate before navigating to the page.
</td></tr> <tr><td><span id="emulatecputhrottling">emulateCPUThrottling(factor)</span>
</td><td> </td><td>Enables CPU throttling to emulate slow CPUs.
</td></tr> <tr><td><span id="emulatefocusedpage">emulateFocusedPage(enabled)</span>
</td><td> </td><td>Emulates focus state of the page.
</td></tr> <tr><td><span id="emulateidlestate">emulateIdleState(overrides)</span>
</td><td> </td><td>Emulates the idle state. If no arguments set, clears idle state emulation.
</td></tr> <tr><td><span id="emulatemediafeatures">emulateMediaFeatures(features)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="emulatemediatype">emulateMediaType(type)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="emulatenetworkconditions">emulateNetworkConditions(networkConditions)</span>
</td><td> </td><td>This does not affect WebSockets and WebRTC PeerConnections (see https://crbug.com/563644). To set the page offline, you can use Page.setOfflineMode().
A list of predefined network conditions can be used by importing PredefinedNetworkConditions.
</td></tr> <tr><td><span id="emulatetimezone">emulateTimezone(timezoneId)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="emulatevisiondeficiency">emulateVisionDeficiency(type)</span>
</td><td> </td><td>Simulates the given vision deficiency on the page.
</td></tr> <tr><td><span id="evaluate">evaluate(pageFunction, args)</span>
</td><td> </td><td>Evaluates a function in the page's context and returns the result.
If the function passed to page.evaluate returns a Promise, the function will wait for the promise to resolve and return its value.
<span id="evaluatehandle">evaluateHandle(pageFunction, args)</span>
</td><td> </td><td>Remarks:
The only difference between page.evaluate and page.evaluateHandle is that evaluateHandle will return the value wrapped in an in-page object.
If the function passed to page.evaluateHandle returns a Promise, the function will wait for the promise to resolve and return its value.
You can pass a string instead of a function (although functions are recommended as they are easier to debug and use with TypeScript):
</td></tr> <tr><td><span id="evaluateonnewdocument">evaluateOnNewDocument(pageFunction, args)</span>
</td><td> </td><td>Adds a function which would be invoked in one of the following scenarios:
whenever the page is navigated
whenever the child frame is attached or navigated. In this case, the function is invoked in the context of the newly attached frame.
The function is invoked after the document was created but before any of its scripts were run. This is useful to amend the JavaScript environment, e.g. to seed Math.random.
<span id="exposefunction">exposeFunction(name, pptrFunction)</span>
</td><td> </td><td>The method adds a function called name on the page's window object. When called, the function executes puppeteerFunction in node.js and returns a Promise which resolves to the return value of puppeteerFunction.
If the puppeteerFunction returns a Promise, it will be awaited.
:::note
Functions installed via page.exposeFunction survive navigations.
:::
</td></tr> <tr><td><span id="focus">focus(selector)</span>
</td><td> </td><td>This method fetches an element with selector and focuses it. If there's no element matching selector, the method throws an error.
Remarks:
Shortcut for page.mainFrame().focus(selector).
</td></tr> <tr><td><span id="frames">frames()</span>
</td><td> </td><td>An array of all frames attached to the page.
</td></tr> <tr><td><span id="getdefaultnavigationtimeout">getDefaultNavigationTimeout()</span>
</td><td> </td><td>Maximum navigation time in milliseconds.
</td></tr> <tr><td><span id="getdefaulttimeout">getDefaultTimeout()</span>
</td><td> </td><td>Maximum time in milliseconds.
</td></tr> <tr><td><span id="goback">goBack(options)</span>
</td><td> </td><td>This method navigate to the previous page in history.
</td></tr> <tr><td><span id="goforward">goForward(options)</span>
</td><td> </td><td>This method navigate to the next page in history.
</td></tr> <tr><td><span id="goto">goto(url, options)</span>
</td><td> </td><td>Navigates the frame or page to the given url.
Remarks:
Navigation to about:blank or navigation to the same URL with a different hash will succeed and return null.
:::warning
Headless shell mode doesn't support navigation to a PDF document. See the upstream issue.
:::
In headless shell, this method will not throw an error when any valid HTTP status code is returned by the remote server, including 404 "Not Found" and 500 "Internal Server Error". The status code for such responses can be retrieved by calling HTTPResponse.status().
</td></tr> <tr><td><span id="hasdevtools">hasDevTools()</span>
</td><td> </td><td>(Experimental) Returns true if DevTools is attached to the current page. Use Page.openDevTools() to get the DevTools page.
</td></tr> <tr><td><span id="hover">hover(selector)</span>
</td><td> </td><td>This method fetches an element with selector, scrolls it into view if needed, and then uses Page.mouse to hover over the center of the element. If there's no element matching selector, the method throws an error.
Remarks:
Shortcut for page.mainFrame().hover(selector).
</td></tr> <tr><td><span id="isclosed">isClosed()</span>
</td><td> </td><td>Indicates that the page has been closed.
</td></tr> <tr><td><span id="isdraginterceptionenabled">isDragInterceptionEnabled()</span>
</td><td>deprecated
true if drag events are being intercepted, false otherwise.
Deprecated:
We no longer support intercepting drag payloads. Use the new drag APIs found on ElementHandle to drag (or just use the Page.mouse).
</td></tr> <tr><td><span id="isjavascriptenabled">isJavaScriptEnabled()</span>
</td><td> </td><td>true if the page has JavaScript enabled, false otherwise.
<span id="isserviceworkerbypassed">isServiceWorkerBypassed()</span>
</td><td> </td><td>true if the service worker are being bypassed, false otherwise.
<span id="locator">locator(selector)</span>
</td><td> </td><td>Creates a locator for the provided selector. See Locator for details and supported actions.
</td></tr> <tr><td><span id="locator">locator(func)</span>
</td><td> </td><td>Creates a locator for the provided function. See Locator for details and supported actions.
</td></tr> <tr><td><span id="mainframe">mainFrame()</span>
</td><td> </td><td>The page's main frame.
</td></tr> <tr><td><span id="metrics">metrics()</span>
</td><td> </td><td>Object containing metrics as key/value pairs.
Remarks:
All timestamps are in monotonic time: monotonically increasing time in seconds since an arbitrary point in the past.
</td></tr> <tr><td><span id="opendevtools">openDevTools()</span>
</td><td> </td><td>Opens DevTools for the current Page and returns the DevTools Page. This method is only available in Chrome.
</td></tr> <tr><td><span id="pdf">pdf(options)</span>
</td><td> </td><td>Generates a PDF of the page with the print CSS media type.
Remarks:
To generate a PDF with the screen media type, call `page.emulateMediaType('screen')` before calling page.pdf().
By default, page.pdf() generates a pdf with modified colors for printing. Use the `-webkit-print-color-adjust` property to force rendering of exact colors.
<span id="queryobjects">queryObjects(prototypeHandle)</span>
</td><td> </td><td>This method iterates the JavaScript heap and finds all objects with the given prototype.
</td></tr> <tr><td><span id="reload">reload(options)</span>
</td><td> </td><td>Reloads the page.
</td></tr> <tr><td><span id="removeexposedfunction">removeExposedFunction(name)</span>
</td><td> </td><td>The method removes a previously added function via $Page.exposeFunction() called name from the page's window object.
<span id="removescripttoevaluateonnewdocument">removeScriptToEvaluateOnNewDocument(identifier)</span>
</td><td> </td><td>Removes script that injected into page by Page.evaluateOnNewDocument.
</td></tr> <tr><td><span id="resize">resize(params)</span>
</td><td> </td><td>(Experimental) Resizes the browser window of this page so that the content area (excluding browser UI) has the specified width and height.
</td></tr> <tr><td><span id="screencast">screencast(options)</span>
</td><td> </td><td>(Experimental) Captures a screencast of this page.
Remarks:
By default, all recordings will be WebM format using the VP9 video codec, with a frame rate of 30 FPS.
You must have ffmpeg installed on your system.
</td></tr> <tr><td><span id="screenshot">screenshot(options)</span>
</td><td> </td><td>Captures a screenshot of this page.
Remarks:
While a screenshot is being taken in a BrowserContext, the following methods will automatically wait for the screenshot to finish to prevent interference with the screenshot process: BrowserContext.newPage(), Browser.newPage(), Page.close().
Calling Page.bringToFront() will not wait for existing screenshot operations.
</td></tr> <tr><td><span id="screenshot">screenshot(options)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="select">select(selector, values)</span>
</td><td> </td><td>Triggers a change and input event once all the provided options have been selected. If there's no <select> element matching selector, the method throws an error.
Remarks:
Shortcut for page.mainFrame().select()
</td></tr> <tr><td><span id="setbypasscsp">setBypassCSP(enabled)</span>
</td><td> </td><td>Toggles bypassing page's Content-Security-Policy.
Remarks:
NOTE: CSP bypassing happens at the moment of CSP initialization rather than evaluation. Usually, this means that page.setBypassCSP should be called before navigating to the domain.
<span id="setbypassserviceworker">setBypassServiceWorker(bypass)</span>
</td><td> </td><td>Toggles ignoring of service worker for each request.
</td></tr> <tr><td><span id="setcacheenabled">setCacheEnabled(enabled)</span>
</td><td> </td><td>Toggles ignoring cache for each request based on the enabled state. By default, caching is enabled.
</td></tr> <tr><td><span id="setcontent">setContent(html, options)</span>
</td><td> </td><td>Set the content of the page.
</td></tr> <tr><td><span id="setcookie">setCookie(cookies)</span>
</td><td>deprecated
Deprecated:
Page-level cookie API is deprecated. Use Browser.setCookie() or BrowserContext.setCookie() instead.
</td></tr> <tr><td><span id="setdefaultnavigationtimeout">setDefaultNavigationTimeout(timeout)</span>
</td><td> </td><td>This setting will change the default maximum navigation time for the following methods and related shortcuts:
<span id="setdefaulttimeout">setDefaultTimeout(timeout)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="setdraginterception">setDragInterception(enabled)</span>
</td><td>deprecated
Deprecated:
We no longer support intercepting drag payloads. Use the new drag APIs found on ElementHandle to drag (or just use the Page.mouse).
</td></tr> <tr><td><span id="setextrahttpheaders">setExtraHTTPHeaders(headers)</span>
</td><td> </td><td>The extra HTTP headers will be sent with every request the page initiates.
:::tip
All HTTP header names are lowercased. (HTTP headers are case-insensitive, so this shouldn’t impact your server code.)
:::
:::note
page.setExtraHTTPHeaders does not guarantee the order of headers in the outgoing requests.
:::
</td></tr> <tr><td><span id="setgeolocation">setGeolocation(options)</span>
</td><td> </td><td>Sets the page's geolocation.
Remarks:
Consider using BrowserContext.overridePermissions() to grant permissions for the page to read its geolocation.
</td></tr> <tr><td><span id="setjavascriptenabled">setJavaScriptEnabled(enabled)</span>
</td><td> </td><td>Remarks:
NOTE: changing this value won't affect scripts that have already been run. It will take full effect on the next navigation.
</td></tr> <tr><td><span id="setofflinemode">setOfflineMode(enabled)</span>
</td><td> </td><td>Emulates the offline mode.
It does not change the download/upload/latency parameters set by Page.emulateNetworkConditions()
</td></tr> <tr><td><span id="setrequestinterception">setRequestInterception(value)</span>
</td><td> </td><td>Activating request interception enables HTTPRequest.abort(), HTTPRequest.continue() and HTTPRequest.respond() methods. This provides the capability to modify network requests that are made by a page.
Once request interception is enabled, every request will stall unless it's continued, responded or aborted; or completed using the browser cache.
See the Request interception guide for more details.
</td></tr> <tr><td><span id="setuseragent">setUserAgent(userAgent, userAgentMetadata)</span>
</td><td>deprecated
Deprecated:
Use Page.setUserAgent() instead.
</td></tr> <tr><td><span id="setuseragent">setUserAgent(options)</span>
</td><td> </td><td> </td></tr> <tr><td><span id="setviewport">setViewport(viewport)</span>
</td><td> </td><td>page.setViewport will resize the page. A lot of websites don't expect phones to change size, so you should set the viewport before navigating to the page.
In the case of multiple pages in a single browser, each page can have its own viewport size. Setting the viewport to null resets the viewport to its default value.
Remarks:
NOTE: in certain cases, setting viewport will reload the page in order to set the isMobile or hasTouch properties.
</td></tr> <tr><td><span id="tap">tap(selector)</span>
</td><td> </td><td>This method fetches an element with selector, scrolls it into view if needed, and then uses Page.touchscreen to tap in the center of the element. If there's no element matching selector, the method throws an error.
Remarks:
Shortcut for page.mainFrame().tap(selector).
</td></tr> <tr><td><span id="target">target()</span>
</td><td>deprecated
A target this page was created from.
Deprecated:
Use Page.createCDPSession() directly.
</td></tr> <tr><td><span id="title">title()</span>
</td><td> </td><td>The page's title
Remarks:
Shortcut for page.mainFrame().title().
</td></tr> <tr><td><span id="type">type(selector, text, options)</span>
</td><td> </td><td>Sends a keydown, keypress/input, and keyup event for each character in the text.
To press a special key, like Control or ArrowDown, use Keyboard.press().
<span id="url">url()</span>
</td><td> </td><td>The page's URL.
Remarks:
Shortcut for page.mainFrame().url().
</td></tr> <tr><td><span id="viewport">viewport()</span>
</td><td> </td><td>Returns the current page viewport settings without checking the actual page viewport.
This is either the viewport set with the previous Page.setViewport() call or the default viewport set via ConnectOptions.defaultViewport.
</td></tr> <tr><td><span id="waitfordeviceprompt">waitForDevicePrompt(options)</span>
</td><td> </td><td>This method is typically coupled with an action that triggers a device request from an api such as WebBluetooth.
:::caution
This must be called before the device request is made. It will not return a currently active device prompt.
:::
</td></tr> <tr><td><span id="waitforfilechooser">waitForFileChooser(options)</span>
</td><td> </td><td>This method is typically coupled with an action that triggers file choosing.
:::caution
This must be called before the file chooser is launched. It will not return a currently active file chooser.
:::
:::caution
Interception of file dialogs triggered via DOM APIs such as window.showOpenFilePicker is currently not supported.
:::
Remarks:
In the "headful" browser, this method results in the native file picker dialog not showing up for the user.
<span id="waitforframe">waitForFrame(urlOrPredicate, options)</span>
</td><td> </td><td>Waits for a frame matching the given conditions to appear.
</td></tr> <tr><td><span id="waitforfunction">waitForFunction(pageFunction, options, args)</span>
</td><td> </td><td>Waits for the provided function, pageFunction, to return a truthy value when evaluated in the page's context.
<span id="waitfornavigation">waitForNavigation(options)</span>
</td><td> </td><td>Waits for the page to navigate to a new URL or to reload. It is useful when you run code that will indirectly cause the page to navigate.
Remarks:
Usage of the History API to change the URL is considered a navigation.
</td></tr> <tr><td><span id="waitfornetworkidle">waitForNetworkIdle(options)</span>
</td><td> </td><td>Waits for the network to be idle.
Remarks:
The function will always wait at least the set IdleTime.
</td></tr> <tr><td><span id="waitforrequest">waitForRequest(urlOrPredicate, options)</span>
</td><td> </td><td>Remarks:
Optional Waiting Parameters have:
timeout: Maximum wait time in milliseconds, defaults to 30 seconds, pass 0 to disable the timeout. The default value can be changed by using the Page.setDefaultTimeout() method.
signal: A signal object that allows you to cancel a waitForRequest call.
<span id="waitforresponse">waitForResponse(urlOrPredicate, options)</span>
</td><td> </td><td>Remarks:
Optional Parameter have:
timeout: Maximum wait time in milliseconds, defaults to 30 seconds, pass 0 to disable the timeout. The default value can be changed by using the Page.setDefaultTimeout() method.
signal: A signal object that allows you to cancel a waitForResponse call.
<span id="waitforselector">waitForSelector(selector, options)</span>
</td><td> </td><td>Wait for the selector to appear in page. If at the moment of calling the method the selector already exists, the method will return immediately. If the selector doesn't appear after the timeout milliseconds of waiting, the function will throw.
Remarks:
The optional Parameter in Arguments options are:
visible: A boolean wait for element to be present in DOM and to be visible, i.e. to not have display: none or visibility: hidden CSS properties. Defaults to false.
hidden: Wait for element to not be found in the DOM or to be hidden, i.e. have display: none or visibility: hidden CSS properties. Defaults to false.
timeout: maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the Page.setDefaultTimeout() method.
signal: A signal object that allows you to cancel a waitForSelector call.
<span id="windowid">windowId()</span>
</td><td> </td><td>(Experimental) Returns the page's window id.
</td></tr> <tr><td><span id="workers">workers()</span>
</td><td> </td><td>All of the dedicated WebWorkers associated with the page.
Remarks:
This does not contain ServiceWorkers
</td></tr> </tbody></table>