ElementHandle
Caution
This API is a work in progress. Some of the following functionalities might behave unexpectedly.
| Method | Description |
|---|---|
| $(selector) | Queries the element for the given selector. |
| $$(selector) | Queries the elements for the given selector. |
| boundingBox() | Returns the bounding box of the element. |
| check([options]) | Checks the element if it is a checkbox or radio button. |
| click([options]) | Clicks on the element. |
| contentFrame() | Returns the Frame of the element. |
| dblclick([options]) | Double clicks on the element. |
| dispatchEvent(type[, eventInit]) | Dispatches an event to the element. |
| fill(value[, options]) | Fills the specified value into the element. |
| focus() | Focuses on the element. |
| getAttribute(name) | Returns the specified attribute of the element. |
| hover([options]) | Hovers over the element. |
| innerHTML() | Returns the inner HTML of the element. |
| innerText() | Returns the inner text of the element. |
| inputValue([options]) | Returns the value of the input element. |
| isChecked() | Checks if the checkbox input type is selected. |
| isDisabled() | Checks if the element is disabled. |
| isEditable() | Checks if the element is editable. |
| isEnabled() | Checks if the element is enabled. |
| isHidden() | Checks if the element is hidden. |
| isVisible() | Checks if the element is visible. |
| ownerFrame() | Returns the Frame of the element. |
| press(key[, options]) | Focuses on the element and presses a single key or a combination of keys using the virtual keyboard. |
| screenshot([options]) | Takes a screenshot of the element. |
| scrollIntoViewIfNeeded([options]) | Scrolls the element into view if needed. |
| selectOption(values[, options]) | Selects the select element’s one or more options which match the values. |
| selectText([options]) | Selects the text of the element. |
| setChecked(checked[, options]) | Sets the checkbox or radio input element’s value to the specified checked or unchecked state. |
| setInputFiles(file[, options]) | Sets the file input element’s value to the specified files. |
| tap(options) | Taps the element. |
| textContent() | Returns the text content of the element. |
| type(text[, options]) | Focuses on the element and types the specified text into the element using the virtual keyboard. |
| uncheck([options]) | Unchecks the element if it is a checkbox or radio button. |
| waitForElementState(state[, options]) | Waits for the element to reach the specified state. |
| waitForSelector(selector[, options]) | Waits for the element to be present in the DOM and to be visible. |
Examples
import { browser } from 'k6/browser';
import { check } from "https://jslib.k6.io/k6-utils/1.5.0/index.js";
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const page = await browser.newPage();
// Goto front page, find login link and click it
try {
await page.goto('https://test.k6.io/');
const messagesLink = await page.$('a[href="/my_messages.php"]');
await Promise.all([page.waitForNavigation(), messagesLink.click()]);
// Enter login credentials and login
const login = await page.$('input[name="login"]');
await login.type('admin');
const password = await page.$('input[name="password"]');
await password.type('123');
const submitButton = await page.$('input[type="submit"]');
await Promise.all([page.waitForNavigation(), submitButton.click()]);
await check(page, {
'header': async p => {
const h2 = await p.$('h2');
return await h2.textContent() == 'Welcome, admin!';
},
});
} finally {
await page.close();
}
}import { browser } from 'k6/browser';
import { check } from 'https://jslib.k6.io/k6-utils/1.5.0/index.js';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const page = await browser.newPage();
try {
// Inject page content
await page.setContent(`
<div class="visible">Hello world</div>
<div style="display:none" class="hidden"></div>
<div class="editable" editable>Edit me</div>
<input type="checkbox" enabled class="enabled">
<input type="checkbox" disabled class="disabled">
<input type="checkbox" checked class="checked">
<input type="checkbox" class="unchecked">
`);
// Check state
await check(page, {
'is visible': async p => {
const e = await p.$('.visible');
return e.isVisible();
},
'is hidden': async p => {
const e = await p.$('.hidden');
return e.isHidden();
},
'is editable': async p => {
const e = await p.$('.editable');
return e.isEditable();
},
'is enabled': async p => {
const e = await p.$('.enabled');
return e.isEnabled();
},
'is disabled': async p => {
const e = await p.$('.disabled');
return e.isDisabled();
},
'is checked': async p => {
const e = await p.$('.checked');
return e.isChecked();
},
'is unchecked': async p => {
const e = await p.$('.unchecked');
return await e.isChecked() === false;
},
});
} finally {
await page.close();
}
}

