import { ElementHandle } from "https://deno.land/x/puppeteer@14.1.1/vendor/puppeteer-core/puppeteer/common/JSHandle.js";
ElementHandle represents an in-page DOM element.
Constructors
Methods
Runs element.querySelector
within the page. If no element matches the selector,
the return value resolves to null
.
Runs element.querySelectorAll
within the page. If no elements match the selector,
the return value resolves to []
.
This method runs document.querySelectorAll
within the element and passes it as
the first argument to pageFunction
. If there's no element matching selector
,
the method throws an error.
If pageFunction
returns a Promise, then frame.$$eval
would wait for the
promise to resolve and return its value.
This method runs document.querySelector
within the element and passes it as
the first argument to pageFunction
. If there's no element matching selector
,
the method throws an error.
If pageFunction
returns a Promise, then frame.$eval
would wait for the promise
to resolve and return its value.
The method evaluates the XPath expression relative to the elementHandle. If there are no such elements, the method will resolve to an empty array.
This method returns the bounding box of the element (relative to the main frame),
or null
if the element is not visible.
This method returns boxes of the element, or null
if the element is not visible.
This method scrolls element into view if needed, and then uses Page.mouse to click in the center of the element. If the element is detached from DOM, the method throws an error.
Returns the middle point within an element unless a specific offset is provided.
Resolves to the content frame for element handles referencing iframe nodes, or null otherwise
This method creates and captures a dragevent from the element.
This method triggers a dragenter, dragover, and drop on the element.
This method creates a dragenter
event on the element.
This method creates a dragover
event on the element.
This method triggers a drop on the element.
This method scrolls element into view if needed, and then uses Page.mouse to hover over the center of the element. If the element is detached from DOM, the method throws an error.
Resolves to true if the element is visible in the current viewport.
Focuses the element, and then uses Keyboard.down and Keyboard.up.
This method scrolls element into view if needed, and then uses Page.screenshot to take a screenshot of the element. If the element is detached from DOM, the method throws an error.
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.
This method scrolls element into view if needed, and then uses Touchscreen.tap to tap in the center of the element. If the element is detached from DOM, the method throws an error.
Focuses the element, and then sends a keydown
, keypress
/input
, and
keyup
event for each character in the text.
To press a special key, like Control
or ArrowDown
,
use ElementHandle.press.
This method expects elementHandle
to point to an
input element.
Wait for the selector
to appear within the element. 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.
This method does not work across navigations or if the element is detached from DOM.
Wait for the xpath
within the element. If at the moment of calling the
method the xpath
already exists, the method will return immediately. If
the xpath
doesn't appear after the timeout
milliseconds of waiting, the
function will throw.
If xpath
starts with //
instead of .//
, the dot will be appended automatically.
This method works across navigation
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
let currentURL;
page
.waitForXPath('//img')
.then(() => console.log('First URL with image: ' + currentURL));
for (currentURL of [
'https://example.com',
'https://google.com',
'https://bbc.com',
]) {
await page.goto(currentURL);
}
await browser.close();
})();