Кадр
В любой момент времени страница предоставляет текущее дерево кадров через методы page.mainFrame() и frame.childFrames().
Жизненный цикл объекта Кадр управляется тремя событиями, отправляемыми объектом страницы:
- page.on('frameattached') - срабатывает, когда кадр прикрепляется к странице. Кадр может быть прикреплен к странице только один раз.
- page.on('framenavigated') - срабатывает, когда кадр выполняет навигацию на другой URL.
- page.on('framedetached') - срабатывает, когда кадр отделяется от страницы. Кадр может быть отделен от страницы только один раз.
Пример вывода дерева кадров:
const { firefox } = require('playwright'); // Or 'chromium' or 'webkit'.
(async () => {
const browser = await firefox.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com/chrome/browser/canary.html');
dumpFrameTree(page.mainFrame(), '');
await browser.close();
function dumpFrameTree(frame, indent) {
console.log(indent + frame.url());
for (const child of frame.childFrames())
dumpFrameTree(child, indent + ' ');
}
})(); Методы
addScriptTag
Добавлен до v1.9Возвращает добавленный тег, когда срабатывает onload скрипта или когда содержимое скрипта было внедрено в кадр.
Добавляет тег <script> на страницу с желаемым URL или содержимым.
Использование
await frame.addScriptTag(); await frame.addScriptTag(options);
Аргументы
-
optionsОбъект (необязательно)-
contentстрока (необязательно)Исходное содержимое JavaScript, которое необходимо внедрить в кадр.
-
pathстрока (необязательно)Путь к файлу JavaScript, который нужно внедрить в кадр. Если
path— относительный путь, то он разрешается относительно текущего рабочего каталога. -
typeстрока (необязательно)Тип скрипта. Используйте 'module', чтобы загрузить модуль JavaScript ES6. Подробнее см. script.
-
urlстрока (необязательно)URL скрипта для добавления.
-
Возвращает
addStyleTag
Добавлен до v1.9Возвращает добавленный тег, когда срабатывает onload стилизованного файла или когда содержимое CSS было внедрено в кадр.
Добавляет тег <link rel="stylesheet"> на страницу с желаемым URL или тег <style type="text/css"> с содержимым.
Использование
await frame.addStyleTag(); await frame.addStyleTag(options);
Аргументы
-
optionsОбъект (необязательно)
Возвращает
childFrames
Добавлен до v1.9Использование
frame.childFrames();
Возвращает
content
Добавлен до v1.9Получает полное HTML-содержимое кадра, включая доctype.
Использование
await frame.content();
Возвращает
dragAndDrop
Использование
await frame.dragAndDrop(source, target); await frame.dragAndDrop(source, target, options);
Аргументы
-
sourceстрокаСелектор для поиска элемента для перетаскивания. Если существует несколько элементов, удовлетворяющих селектору, используется первый.
-
targetстрокаСелектор для поиска элемента, на который нужно опустить перетаскиваемый элемент. Если существует несколько элементов, удовлетворяющих селектору, используется первый.
-
optionsОбъект (необязательно)-
forceлогическое значение (необязательно)Пропустить ли проверки активности. По умолчанию
false. -
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
sourcePositionОбъект (необязательно)Координаты щелчка по элементу-источнику относительно верхнего левого угла области отступа элемента. Если не указаны, используется какая-то видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
targetPositionОбъект (необязательно)Координаты отпуска перетаскивания на целевой элемент относительно верхнего левого угла области отступа элемента. Если не указаны, используется какая-то видимая точка элемента.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью опцииactionTimeoutв конфигурации или используя методы browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, метод выполняет только проверки активности и пропускает действие. По умолчанию
false. Полезно для ожидания готовности элемента к действию без его выполнения.
-
Возвращает
evaluate
Добавлено до версии 1.9Возвращает возвращаемое значение pageFunction.
Если функция, переданная в frame.evaluate(), возвращает Promise, то frame.evaluate() ожидает разрешения промиса и возвращает его значение.
Если функция, переданная в frame.evaluate(), возвращает значение, которое не является сериализуемым, то frame.evaluate() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не могут быть сериализованы JSON: -0, NaN, Infinity, -Infinity.
Использование
const result = await frame.evaluate(([x, y]) => {
return Promise.resolve(x * y);
}, [7, 8]);
console.log(result); // prints "56" Вместо функции также можно передать строку.
console.log(await frame.evaluate('1 + 2')); // prints "3" ElementHandle можно передать в качестве аргумента в frame.evaluate():
const bodyHandle = await frame.evaluate('document.body');
const html = await frame.evaluate(([body, suffix]) =>
body.innerHTML + suffix, [bodyHandle, 'hello'],
);
await bodyHandle.dispose(); Аргументы
-
Функция, которая должна быть выполнена в контексте страницы.
-
argEvaluationArgument (необязательно)Необязательный аргумент для передачи в pageFunction.
Возвращает
evaluateHandle
Добавлено до версии 1.9Возвращает результат выполнения pageFunction в виде JSHandle.
Единственное различие между frame.evaluate() и frame.evaluateHandle() заключается в том, что frame.evaluateHandle() возвращает JSHandle.
Если функция, переданная в frame.evaluateHandle(), возвращает Promise, то frame.evaluateHandle() ожидает разрешения промиса и возвращает его значение.
Использование
// Handle for the window object const aWindowHandle = await frame.evaluateHandle(() => Promise.resolve(window));
Вместо функции также можно передать строку.
const aHandle = await frame.evaluateHandle('document'); // Handle for the 'document'. JSHandle можно передать в качестве аргумента в frame.evaluateHandle():
const aHandle = await frame.evaluateHandle(() => document.body); const resultHandle = await frame.evaluateHandle(([body, suffix]) => body.innerHTML + suffix, [aHandle, 'hello'], ); console.log(await resultHandle.jsonValue()); await resultHandle.dispose();
Аргументы
-
Функция, которая должна быть выполнена в контексте страницы.
-
argEvaluationArgument (необязательно)Необязательный аргумент для передачи в pageFunction.
Возвращает
frameElement
Добавлено до версии 1.9Возвращает ElementHandle элемента, соответствующего данному фрейму.
Это обратное действие для elementHandle.contentFrame(). Обратите внимание, что возвращаемый обработчик на самом деле принадлежит родительскому фрейму.
Этот метод генерирует ошибку, если фрейм был отключен до того, как frameElement() возвращает значение.
Использование
const frameElement = await frame.frameElement(); const contentFrame = await frameElement.contentFrame(); console.log(frame === contentFrame); // -> true
Возвращает
frameLocator
При работе с iframes можно создать локатор фрейма, который войдет в iframe и позволит выбирать элементы в этом iframe.
Использование
Следующий фрагмент кода находит элемент с текстом "Отправить" во iframe с id my-frame, как <iframe id="my-frame">:
const locator = frame.frameLocator('#my-iframe').getByText('Submit');
await locator.click(); Аргументы
-
selectorстрокаСелектор для выбора элемента DOM.
Возвращает
getByAltText
Позволяет находить элементы по их текстовому описанию (alt text).
Использование
Например, этот метод найдет изображение с текстовым описанием "Логотип Playwright":
<img alt='Playwright logo'>
await page.getByAltText('Playwright logo').click(); Аргументы
-
Текст для поиска элемента.
-
optionsобъект (необязательно)-
exactлогическое значение (необязательно)Поиск точного совпадения (регистрозависимое и по всему тексту). По умолчанию false. Игнорируется при поиске по регулярному выражению. При точном совпадении пробелы в начале и конце строки все равно обрезаются.
-
Возвращает
getByLabel
Позволяет находить элементы input по тексту, связанному с элементом <label> или aria-labelledby, или по атрибуту aria-label.
Использование
Например, этот метод найдет поля ввода с метками "Имя пользователя" и "Пароль" в следующем DOM:
<input aria-label="Username"> <label for="password-input">Password:</label> <input id="password-input">
await page.getByLabel('Username').fill('john');
await page.getByLabel('Password').fill('secret'); Аргументы
-
Текст для поиска элемента.
-
optionsобъект (необязательно)-
exactлогическое значение (необязательно)Поиск точного совпадения (регистрозависимое и по всему тексту). По умолчанию false. Игнорируется при поиске по регулярному выражению. При точном совпадении пробелы в начале и конце строки все равно обрезаются.
-
Возвращает
getByPlaceholder
Позволяет находить элементы input по плацехолдеру.
Использование
Например, рассмотрим следующую структуру DOM.
<input type="email" placeholder="name@example.com" />
Можно заполнить поле ввода после поиска по плацехолдеру:
await page
.getByPlaceholder('name@example.com')
.fill('playwright@microsoft.com'); Аргументы
-
Текст для поиска элемента.
-
optionsОбъект (необязательно)-
exactлогическое значение (необязательно)Определяет, нужно ли искать точное совпадение: регистрозависимое и по всей строке. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение всё равно обрезает пробелы.
-
Возвращает
getByRole
Позволяет находить элементы по их роли ARIA, атрибутам ARIA и доступному имени.
Использование
Рассмотрим следующую структуру DOM.
<h3>Sign up</h3> <label> <input type="checkbox" /> Subscribe </label> <br/> <button>Submit</button>
Вы можете найти каждый элемент по его неявной роли:
await expect(page.getByRole('heading', { name: 'Sign up' })).toBeVisible();
await page.getByRole('checkbox', { name: 'Subscribe' }).check();
await page.getByRole('button', { name: /submit/i }).click(); Аргументы
-
role"alert" | "alertdialog" | "application" | "article" | "banner" | "blockquote" | "button" | "caption" | "cell" | "checkbox" | "code" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "deletion" | "dialog" | "directory" | "document" | "emphasis" | "feed" | "figure" | "form" | "generic" | "grid" | "gridcell" | "group" | "heading" | "img" | "insertion" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "meter" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "paragraph" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "strong" | "subscript" | "superscript" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "time" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem"Требуемая роль aria.
-
optionsОбъект (необязательно)-
checkedлогическое значение (необязательно)Атрибут, обычно устанавливаемый
aria-checkedили нативными<input type=checkbox>элементами управления.Узнайте больше о
aria-checked. -
disabledлогическое значение (необязательно)Атрибут, обычно устанавливаемый
aria-disabledилиdisabled.примечаниеВ отличие от большинства других атрибутов,
disabledнаследуется через иерархию DOM. Узнайте больше оaria-disabled. -
exactлогическое значение (необязательно)Определяет, нужно ли точно совпадать со значением имени: регистрозависимое и по всей строке. По умолчанию false. Игнорируется, когда имя является регулярным выражением. При точном совпадении всё равно обрезаются пробелы.
-
expandedлогическое значение (необязательно)Атрибут, обычно устанавливаемый
aria-expanded.Узнайте больше о
aria-expanded. -
includeHiddenлогическое значение (необязательно)Параметр, определяющий, будут ли учитываться скрытые элементы. По умолчанию, только нескрытые элементы, как определено в ARIA, соответствуют селектору по роли.
Узнайте больше о
aria-hidden. -
levelчисло (необязательно)Числовой атрибут, обычно присутствующий для ролей
heading,listitem,row,treeitem, со значениями по умолчанию для<h1>-<h6>элементов.Узнайте больше о
aria-level. -
nameстрока | RegExp (необязательно)Вариант для соответствия доступному имени. По умолчанию сопоставление регистронезависимое и ищет подстроку, используйте exact, чтобы управлять этим поведением.
Узнайте больше о доступном имени.
-
pressedлогическое значение (необязательно)Атрибут, обычно устанавливаемый
aria-pressed.Узнайте больше о
aria-pressed. -
selectedлогическое значение (необязательно)Атрибут, обычно устанавливаемый
aria-selected.Узнайте больше о
aria-selected.
-
Возвращает
Подробности
Селектор роли не заменяет аудиты доступности и тесты соответствия, а скорее предоставляет предварительные сведения о рекомендациях ARIA.
Многие HTML-элементы имеют неявную определенную роль, которая распознаётся селектором роли. Все поддерживаемые роли можно найти здесь. Рекомендации ARIA не рекомендуют дублировать неявные роли и атрибуты, устанавливая role и/или aria-* атрибуты в значения по умолчанию.
getByTestId
Найти элемент по идентификатору теста.
Использование
Рассмотрим следующую структуру DOM.
<button data-testid="directions">Itinéraire</button>
Вы можете найти элемент по его идентификатору теста:
await page.getByTestId('directions').click(); Аргументы
Возвращает
Подробности
По умолчанию атрибут data-testid используется как идентификатор теста. Используйте selectors.setTestIdAttribute() для настройки другого атрибута идентификатора теста, если необходимо.
// Set custom test id attribute from @playwright/test config:
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
testIdAttribute: 'data-pw'
},
}); getByText
Позволяет находить элементы, содержащие заданный текст.
См. также locator.filter(), который позволяет сопоставлять по другим критериям, например, доступной роли, и затем фильтровать по содержимому текста.
Использование
Рассмотрим следующую структуру DOM:
<div>Hello <span>world</span></div> <div>Hello</div>
Вы можете найти элемент по подстроке текста, точному тексту или регулярному выражению:
// Matches <span>
page.getByText('world');
// Matches first <div>
page.getByText('Hello world');
// Matches second <div>
page.getByText('Hello', { exact: true });
// Matches both <div>s
page.getByText(/Hello/);
// Matches second <div>
page.getByText(/^hello$/i); Аргументы
-
Текст для поиска элемента.
-
optionsОбъект (необязательно)-
exactбулево (необязательно)Требовать точное совпадение: чувствительность к регистру и полное совпадение строки. По умолчанию значение ложь. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение всё ещё обрезает пробелы.
-
Возвращает
Подробности
Сопоставление по тексту всегда нормализует пробелы, даже при точном совпадении. Например, он объединяет несколько пробелов в один, заменяет символы перевода строки на пробелы и игнорирует начальные и конечные пробелы.
Элементы типа button и submit сопоставляются по их value , а не по содержимому текста. Например, поиск по тексту "Log in" соответствует <input type=button value="Log in">.
getByTitle
Позволяет находить элементы по их атрибуту title.
Использование
Рассмотрим следующую структуру DOM.
<span title='Issues count'>25 issues</span>
Вы можете проверить количество проблем после его поиска по тексту title:
await expect(page.getByTitle('Issues count')).toHaveText('25 issues'); Аргументы
-
Текст для поиска элемента.
-
optionsОбъект (необязательно)-
exactбулево (необязательно)Требовать точное совпадение: чувствительность к регистру и полное совпадение строки. По умолчанию значение ложь. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение всё ещё обрезает пробелы.
-
Возвращает
goto
Добавлен до версии 1.9Возвращает ответ основного ресурса. В случае множественных перенаправлений навигация завершится ответом последнего перенаправления.
Метод вернет ошибку, если:
- возникла ошибка SSL (например, при самоподписанных сертификатах).
- целевой URL недействителен.
- время ожидания timeout превышено во время навигации.
- удаленный сервер не отвечает или недоступен.
- основной ресурс не загрузился.
Метод не будет возвращать ошибку, когда удаленный сервер возвращает любой действительный HTTP-код состояния, включая 404 "Не найдено" и 500 "Внутренняя ошибка сервера". Код состояния таких ответов можно получить, вызвав response.status().
примечаниеМетод либо возвращает ошибку, либо ответ основного ресурса. Исключение составляют навигация к
about:blankили навигация по тому же URL с другим хэшем, которые пройдут успешно и вернутnull.
примечаниеРежим без графического интерфейса не поддерживает навигацию к документу PDF. См. соответствующую проблему.
Использование
await frame.goto(url); await frame.goto(url, options);
Аргументы
-
urlстрокаURL для навигации фрейма. URL должен включать схему, например,
https://. -
optionsОбъект (необязательно)-
refererстрока (необязательно)Значение заголовка Referer. Если указано, оно будет использоваться вместо значения заголовка referer, установленного с помощью page.setExtraHTTPHeaders().
-
timeoutчисло (необязательно)Максимальное время выполнения в миллисекундах. По умолчанию
0- без таймаута. Значение по умолчанию можно изменить с помощью параметраnavigationTimeoutв конфигурации или используя методы browserContext.setDefaultNavigationTimeout(), browserContext.setDefaultTimeout(), page.setDefaultNavigationTimeout() или page.setDefaultTimeout(). -
waitUntil"load" | "domcontentloaded" | "networkidle" | "commit" (необязательно)Когда считать операцию успешной, по умолчанию
load. События могут быть:-
'domcontentloaded'- считать операцию завершенной при срабатывании событияDOMContentLoaded. -
'load'- считать операцию завершенной при срабатывании событияload. -
'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых подключений в течение как минимум500мс. Не используйте этот метод для тестирования, вместо этого используйте веб-утверждения для оценки готовности. -
'commit'- считать операцию завершенной, когда получен сетевой ответ и началась загрузка документа.
-
-
Возвращает
isDetached
Добавлен до версии 1.9Возвращает true , если фрейм был отделён, или false в противном случае.
Использование
frame.isDetached();
Возвращает
isEnabled
Добавлен до версии 1.9Возвращает, является ли элемент активированным.
Использование
await frame.isEnabled(selector); await frame.isEnabled(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если существует несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsОбъект (необязательно)-
strictбулево (необязательно)При значении истина, вызов требует, чтобы селектор разрешился до одного элемента. Если селектор разрешается более чем на один элемент, вызов возвращает исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0- без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или используя методы browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
locator
Метод возвращает локатор элемента, который можно использовать для выполнения действий на этой странице/фрейме. Локатор резолвится в элемент сразу перед выполнением действия, поэтому серия действий с одним и тем же локатором может фактически выполняться на разных элементах DOM. Это произойдет, если структура DOM изменилась между этими действиями.
Дополнительная информация о локаторах.
Дополнительная информация о локаторах.
Использование
frame.locator(selector); frame.locator(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента DOM.
-
optionsОбъект (необязательно)-
hasЛокатор (необязательно)Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например,
articleкоторый содержитtext=Playwrightсоответствует<article><div>Playwright</div></article>.Вложенный локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локета, а не с корня документа. Например, можно найти
contentкоторый содержитdivв<article><content><div>Playwright</div></content></article>. Однако поискcontentкоторый содержитarticle divпотерпит неудачу, потому что вложенный локатор должен быть относительным и не должен использовать какие-либо элементы за пределамиcontent.Обратите внимание, что внешний и внутренний локаторы должны принадлежать одной и той же фрейму. Вложенный локатор не должен содержать FrameLocator.
-
hasNotЛокатор (необязательно)Сопоставляет элементы, которые не содержат элемента, соответствующего вложенному локатору. Вложенный локатор запрашивается относительно внешнего. Например,
articleкоторый не содержитdivсоответствует<article><span>Playwright</span></article>.Обратите внимание, что внешний и внутренний локаторы должны принадлежать одной и той же фрейму. Вложенный локатор не должен содержать FrameLocator.
-
hasNotTextстрока | RegExp (необязательно)Сопоставляет элементы, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче строки, сопоставление регистронезависимое и ищет подстроку.
-
hasTextстрока | RegExp (необязательно)Сопоставляет элементы, содержащие указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче строки, сопоставление регистронезависимое и ищет подстроку. Например,
"Playwright"соответствует<article><div>Playwright</div></article>.
-
Возвращает
name
Добавлен до v1.9Возвращает атрибут имени фрейма, как указано в теге.
Если имя пустое, возвращает атрибут id вместо него.
примечаниеЭто значение вычисляется один раз при создании фрейма и не будет обновляться, если атрибут изменится позже.
Использование
frame.name();
Возвращает
page
Добавлен до v1.9Возвращает страницу, содержащую этот фрейм.
Использование
frame.page();
Возвращает
parentFrame
Добавлен до v1.9Родительский фрейм, если есть. Открепленные фреймы и главные фреймы возвращают null.
Использование
frame.parentFrame();
Возвращает
setContent
Добавлен до v1.9Этот метод внутренне вызывает document.write(), наследуя все его специфические характеристики и поведение.
Использование
await frame.setContent(html); await frame.setContent(html, options);
Аргументы
-
htmlстрокаHTML-разметка для назначения странице.
-
optionsОбъект (необязательно)-
timeoutчисло (необязательно)Максимальное время выполнения в миллисекундах. По умолчанию
0- нет таймаута. Значение по умолчанию можно изменить через параметрnavigationTimeoutв конфигурации или с помощью методов browserContext.setDefaultNavigationTimeout(), browserContext.setDefaultTimeout(), page.setDefaultNavigationTimeout() или page.setDefaultTimeout(). -
waitUntil"load" | "domcontentloaded" | "networkidle" | "commit" (необязательно)Когда считать операцию успешной, по умолчанию
load. События могут быть следующими:-
'domcontentloaded'- считать операцию завершенной, когда срабатывает событиеDOMContentLoaded. -
'load'- считать операцию завершенной, когда срабатывает событиеload. -
'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности вместо этого. -
'commit'- считать операцию завершенной, когда получен сетевой ответ и началась загрузка документа.
-
-
Возвращает
title
Добавлен до v1.9Возвращает заголовок страницы.
Использование
await frame.title();
Возвращает
url
Добавлен до v1.9Возвращает URL фрейма.
Использование
frame.url();
Возвращает
waitForFunction
Добавлен до v1.9Возвращает, когда функция pageFunction возвращает истинное значение, возвращает это значение.
Использование
Метод frame.waitForFunction() может использоваться для наблюдения за изменением размера viewport:
const { firefox } = require('playwright'); // Or 'chromium' or 'webkit'.
(async () => {
const browser = await firefox.launch();
const page = await browser.newPage();
const watchDog = page.mainFrame().waitForFunction('window.innerWidth < 100');
await page.setViewportSize({ width: 50, height: 50 });
await watchDog;
await browser.close();
})(); Чтобы передать аргумент в предикат функции frame.waitForFunction:
const selector = '.foo'; await frame.waitForFunction(selector => !!document.querySelector(selector), selector);
Аргументы
-
Функция, которая должна быть вычислена в контексте страницы.
-
argEvaluationArgument (необязательно)Необязательный аргумент для передачи в pageFunction.
-
optionsОбъект (необязательно)-
pollingчисло | "raf" (необязательно)Если опрос равен
'raf', то pageFunction постоянно выполняется вrequestAnimationFrameобработчике. Если опрос — число, то оно интерпретируется как интервал в миллисекундах, через который функция будет выполняться. По умолчаниюraf. -
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено черезactionTimeoutпараметр в конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
waitForLoadState
Добавлено до версии 1.9Ожидает достижения необходимого состояния загрузки.
Метод возвращает, когда фрейм достигает необходимого состояния загрузки, load по умолчанию. Переход должен быть подтверждён, когда этот метод вызывается. Если текущий документ уже достиг необходимого состояния, он возвращается немедленно.
примечаниеБольшую часть времени этот метод не нужен, потому что Playwright автоматически ожидает перед каждым действием автоматически ожидает перед каждым действием.
Использование
await frame.click('button'); // Click triggers navigation.
await frame.waitForLoadState(); // Waits for 'load' state by default. Аргументы
-
state"load" | "domcontentloaded" | "networkidle" (необязательно)Необязательное состояние загрузки, которого нужно дождаться, по умолчанию
load. Если состояние уже достигнуто при загрузке текущего документа, метод возвращается немедленно. Может быть одним из:-
'load'- ожидание срабатывания событияload. -
'domcontentloaded'- ожидание срабатывания событияDOMContentLoaded. -
'networkidle'- НЕ РЕКОМЕНДУЕТСЯ ожидание, пока не будет активных сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, вместо этого используйте веб-утверждения для оценки готовности.
-
-
optionsОбъект (необязательно)-
timeoutчисло (необязательно)Максимальное время выполнения в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено черезnavigationTimeoutпараметр в конфигурации или с помощью методов browserContext.setDefaultNavigationTimeout(), browserContext.setDefaultTimeout(), page.setDefaultNavigationTimeout() или page.setDefaultTimeout().
-
Возвращает
waitForURL
Ожидает навигации фрейма по указанному URL.
Использование
await frame.click('a.delayed-navigation'); // Clicking the link will indirectly cause a navigation
await frame.waitForURL('**/target.html'); Аргументы
-
urlстрока | RegExp | функция(URL):booleanШаблон glob, шаблон regex или предикат, принимающий URL для сопоставления во время ожидания навигации. Обратите внимание, что если параметр — строка без символов подстановки, метод будет ожидать навигации по URL, который точно равен строке.
-
optionsОбъект (необязательно)-
timeoutчисло (необязательно)Максимальное время выполнения в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено черезnavigationTimeoutпараметр в конфигурации или с помощью методов browserContext.setDefaultNavigationTimeout(), browserContext.setDefaultTimeout(), page.setDefaultNavigationTimeout() или page.setDefaultTimeout(). -
waitUntil"load" | "domcontentloaded" | "networkidle" | "commit" (необязательно)Когда следует считать операцию успешной, по умолчанию
load. События могут быть:-
'domcontentloaded'- считать операцию завершённой, когда срабатывает событиеDOMContentLoaded. -
'load'- считать операцию завершённой, когда срабатывает событиеload. -
'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершённой, когда нет активных сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, вместо этого используйте веб-утверждения для оценки готовности. -
'commit'- считать операцию завершённой, когда получен сетевой ответ и началась загрузка документа.
-
-
Возвращает
Устаревшее
$
Не рекомендуетсяВместо этого используйте основанный на локаторе frame.locator(). Подробнее о локаторох.
Возвращает ElementHandle, указывающий на элемент фрейма.
предупреждениеИспользование ElementHandle не рекомендуется. Используйте объекты Locator и веб-утверждения вместо этого.
Метод находит элемент, соответствующий указанному селектору внутри фрейма. Если ни один элемент не соответствует селектору, возвращает null.
Использование
await frame.$(selector); await frame.$(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска.
-
optionsОбъект (необязательно)-
strictбулево значение (необязательно)Если истинно, вызов требует, чтобы селектор разрешался на один элемент. Если селектор разрешается на большее количество элементов, вызов выбрасывает исключение.
-
Возвращает
$$
Не рекомендуетсяИспользуйте основанный на локаторе frame.locator() вместо этого. Дополнительную информацию о локаторах см. ниже.
Возвращает ElementHandles, указывающие на элементы фрейма.
предупреждениеИспользование ElementHandle не рекомендуется; используйте объекты Locator вместо этого.
Метод находит все элементы, соответствующие заданному селектору внутри фрейма. Если элементов, соответствующих селектору, нет, возвращает пустой массив.
Использование
await frame.$$(selector);
Аргументы
-
selectorстрокаСелектор для поиска.
Возвращаемое значение
$eval
Не рекомендуетсяЭтот метод не ожидает, что элемент пройдет проверки на доступность, а поэтому может привести к нестабильным тестам. Вместо этого используйте locator.evaluate(), другие вспомогательные методы Locator или проверки, ориентированные на веб.
Возвращает значение, возвращённое pageFunction.
Метод находит элемент, соответствующий заданному селектору внутри фрейма, и передает его в качестве первого аргумента pageFunction. Если элементов, соответствующих селектору, нет, метод выбрасывает ошибку.
Если pageFunction возвращает Promise, то frame.$eval() ожидает завершения обещания и возвращает его значение.
Использование
const searchValue = await frame.$eval('#search', el => el.value);
const preloadHref = await frame.$eval('link[rel=preload]', el => el.href);
const html = await frame.$eval('.main-container', (e, suffix) => e.outerHTML + suffix, 'hello'); Аргументы
-
selectorстрокаСелектор для поиска.
-
pageFunctionфункция(Элемент) | строкаФункция, которая будет вычислена в контексте страницы.
-
argАргументВычисления (необязательно)Необязательный аргумент для передачи в pageFunction.
-
optionsОбъект (необязательно)-
strictбулево (необязательно)Если true, вызов требует, чтобы селектор разрешался на единственный элемент. Если заданный селектор разрешается на более чем один элемент, вызов генерирует исключение.
-
Возвращаемое значение
$$eval
Не рекомендуетсяВ большинстве случаев locator.evaluateAll(), другие вспомогательные методы Locator и веб-ориентированные проверки выполняют свою задачу лучше.
Возвращает значение, возвращённое pageFunction.
Метод находит все элементы, соответствующие заданному селектору внутри фрейма, и передает массив совпадающих элементов в качестве первого аргумента pageFunction.
Если pageFunction возвращает Promise, то frame.$$eval() ожидает разрешения обещания и возвращает его значение.
Использование
const divsCounts = await frame.$$eval('div', (divs, min) => divs.length >= min, 10); Аргументы
-
selectorстрокаСелектор для поиска.
-
pageFunctionфункция(Массив<Элемент>) | строкаФункция, которая будет вычислена в контексте страницы.
-
argАргументВычисления (необязательно)Необязательный аргумент для передачи в pageFunction.
Возвращаемое значение
check
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторе locator.check() вместо этого. Дополнительную информацию о локаторах см. ниже.
Этот метод проверяет элемент, соответствующий селектору, выполняя следующие действия:
- Находит элемент, соответствующий селектору. Если его нет, ожидает, пока соответствующий элемент не будет добавлен в DOM.
- Убеждается, что найденный элемент является чекбоксом или радиокнопкой. В противном случае метод выбрасывает ошибку. Если элемент уже выбран, метод возвращается немедленно.
- Ожидает проверки доступности на найденном элементе, если опция force не задана. Если элемент откреплён во время проверок, действие повторяется.
- Если нужно, прокручивает элемент в область видимости.
- Использует page.mouse для клика в центре элемента.
- Убеждается, что элемент теперь выбран. В противном случае метод выбрасывает ошибку.
Если все шаги не завершаются в течение заданного таймаута, метод выбрасывает исключение TimeoutError. Передача нулевого таймаута отключает его.
Использование
await frame.check(selector); await frame.check(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
optionsОбъект (необязательно)-
forceлогическое значение (необязательно)Нужно ли пропустить проверки действительности. По умолчанию
false. -
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр не оказывает никакого влияния.
Этот параметр не оказывает никакого влияния.
-
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области отступа элемента. Если не указано, используется какая-либо видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, селектор должен ссылаться на единственный элемент. Если селектор ссылается на более одного элемента, вызываемый метод генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно дождаться готовности элемента к действию, не выполняя его.
-
Возвращает
click
Добавлено до версии v1.9Не рекомендуетсяИспользуйте locator.click() на основе локеторов вместо этого. Подробнее о локеторах.
Этот метод нажимает элемент, соответствующий селектору, выполняя следующие шаги:
- Находит элемент, соответствующий селектору. Если его нет, дожидается, пока соответствующий элемент будет добавлен в DOM.
- Дожидается проверок действительности для сопоставленного элемента, если параметр force не установлен. Если элемент откреплен во время проверок, все действие повторяется.
- Прокручивает элемент в видимую область, если необходимо.
- Использует page.mouse для нажатия в центре элемента или в указанной позиции.
- Дожидается завершения инициированных навигаций, если параметр noWaitAfter не установлен.
Если все шаги не завершатся в течение заданного таймаута, этот метод генерирует исключение TimeoutError. Передача нулевого таймаута отключает его.
Использование
await frame.click(selector); await frame.click(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
optionsОбъект (необязательно)-
button"слева" | "справа" | "посередине" (необязательно)По умолчанию
left. -
clickCountчисло (необязательно)по умолчанию 1. См. UIEvent.detail.
-
delayчисло (необязательно)Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
forceлогическое значение (необязательно)Нужно ли пропустить проверки действительности. По умолчанию
false. -
modifiersМассив<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)Модификаторы клавиш для нажатия. Гарантирует, что во время операции нажаты только эти модификаторы, а затем восстанавливаются текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" соответствует "Control" в Windows и Linux и "Meta" в macOS.
-
noWaitAfterлогическое значение (необязательно)УстарелоВ будущем этот параметр по умолчанию будет
true.Действия, которые инициируют навигации, ожидают выполнения этих навигаций и начала загрузки страниц. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация по недоступным страницам. По умолчанию
false. -
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области отступа элемента. Если не указано, используется какая-либо видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, селектор должен ссылаться на единственный элемент. Если селектор ссылается на более одного элемента, вызываемый метод генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно дождаться готовности элемента к действию, не выполняя его. Обратите внимание, что нажатие клавишmodifiersбудет выполнено независимо отtrialдля проверки элементов, которые видны только при нажатии этих клавиш.
-
Возвращает
dblclick
Добавлено до версии v1.9Не рекомендуетсяИспользуйте locator.dblclick() на основе локализации вместо этого. Дополнительную информацию о локализациях см. здесь.
Этот метод выполняет двойной щелчок по элементу, соответствующему селектору, выполнив следующие шаги:
- Найти элемент, соответствующий селектору. Если такого нет, подождать, пока соответствующий элемент не будет добавлен в DOM.
- Подождать проверки активности для сопоставленного элемента, если опция force не задана. Если элемент откреплен во время проверок, всё действие повторяется.
- Прокрутить элемент в видимую область, если необходимо.
- Использовать page.mouse для двойного щелчка в центре элемента или в указанной позиции. Если первый щелчок
dblclick()вызывает событие навигации, этот метод генерирует исключение.
Если все шаги не завершатся в течение заданного времени ожидания, этот метод генерирует исключение TimeoutError. Передача нулевого значения времени ожидания отключает его.
Примечание
frame.dblclick()отправляет дваclickсобытия и одноdblclickсобытие.
Использование
await frame.dblclick(selector); await frame.dblclick(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, будет использован первый.
-
optionsОбъект (необязательно)-
button"слева" | "справа" | "посредине" (необязательно)По умолчанию
left. -
delayчисло (необязательно)Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
forceлогическое значение (необязательно)Пропустить ли проверки активности. По умолчанию
false. -
modifiersМассив<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)Модификаторы клавиш. Гарантирует, что нажаты только эти модификаторы во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" эквивалентно "Control" в Windows и Linux и "Meta" в macOS.
-
noWaitAfterлогическое значение (необязательно)УстарелоЭта опция не оказывает влияния.
Эта опция не оказывает влияния.
-
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области заполнения элемента. Если не указано, используется некоторая видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, селектор должен соответствовать одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— нет времени ожидания. Значение по умолчанию можно изменить с помощью опцииactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, этот метод выполняет только проверки активности и пропускает действие. По умолчанию
false. Полезно для ожидания готовности элемента к действию без его выполнения. Обратите внимание, что нажатия клавишmodifiersбудут выполняться независимо отtrial, чтобы разрешить тестирование элементов, которые видны только при нажатии этих клавиш.
-
Возвращает
dispatchEvent
Добавлен до версии 1.9Не рекомендуетсяИспользуйте locator.dispatchEvent() на основе локализации вместо этого. Дополнительную информацию о локализациях см. здесь.
Приведенный ниже фрагмент отправляет событие click для элемента. Независимо от состояния видимости элемента, click отправляется. Это эквивалентно вызову element.click().
Использование
await frame.dispatchEvent('button#submit', 'click'); Под капотом создается экземпляр события на основе заданного типа, инициализируется свойствами eventInit и отправляется для элемента. События по умолчанию composed, cancelable и распространяются вверх по DOM.
Поскольку eventInit специфичен для события, пожалуйста, обратитесь к документации по событиям для списков свойств инициализации:
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
Вы также можете указать JSHandle в качестве значения свойства, если хотите передавать живые объекты в событие:
// Note you can only create DataTransfer in Chromium and Firefox
const dataTransfer = await frame.evaluateHandle(() => new DataTransfer());
await frame.dispatchEvent('#source', 'dragstart', { dataTransfer }); Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
typeстрокаТип события DOM:
"click","dragstart", и т. д. -
eventInitEvaluationArgument (необязательно)Необязательные свойства инициализации, специфичные для события.
-
optionsОбъект (необязательно)-
strictбулево (необязательно)Если true, вызов требует, чтобы селектор разрешался в один элемент. Если селектор разрешается более чем в один элемент, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации, или используя методы browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
fill
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.fill() на основе локаторов. Подробнее о локаторах.
Этот метод ожидает элемента, соответствующего селектору, ожидает проверки действительности, фокусирует элемент, заполняет его и вызывает событие input после заполнения. Обратите внимание, что можно передать пустую строку для очистки поля ввода.
Если целевой элемент не является элементом типа <input>, <textarea> или [contenteditable], этот метод генерирует ошибку. Однако, если элемент находится внутри элемента <label>, у которого есть связанный control, будет заполнен control.
Для отправки событий клавиатуры с точным управлением используйте locator.pressSequentially().
Использование
await frame.fill(selector, value); await frame.fill(selector, value, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
valueстрокаЗначение для заполнения элемента
<input>,<textarea>или[contenteditable]. -
optionsОбъект (необязательно)-
forceбулево (необязательно)Пропустить проверки действительности. По умолчанию
false. -
noWaitAfterбулево (необязательно)УстарелоЭтот параметр не оказывает никакого эффекта.
Этот параметр не оказывает никакого эффекта.
-
strictбулево (необязательно)Если true, вызов требует, чтобы селектор разрешался в один элемент. Если селектор разрешается более чем в один элемент, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации, или используя методы browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
focus
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.focus() на основе локаторов. Подробнее о локаторах.
Этот метод получает элемент с селектором и фокусирует его. Если элемент, соответствующий селектору, не найден, метод ожидает, пока соответствующий элемент появится в DOM.
Использование
await frame.focus(selector); await frame.focus(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
optionsОбъект (необязательно)-
strictбулево (необязательно)Если true, вызов требует, чтобы селектор разрешался в один элемент. Если селектор разрешается более чем в один элемент, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации, или используя методы browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
getAttribute
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.getAttribute() на основе локаторов. Подробнее о локаторах.
Возвращает значение атрибута элемента.
Использование
await frame.getAttribute(selector, name); await frame.getAttribute(selector, name, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, используется первый.
-
nameстрокаИмя атрибута, значение которого нужно получить.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0- таймаут отсутствует. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
hover
Добавлена до версии v1.9Не рекомендуетсяИспользуйте locator.hover() на основе локейтора вместо этого. Подробнее о локейторах.
Этот метод наводит указатель мыши на элемент, соответствующий селектору selector, выполняя следующие действия:
- Находит элемент, соответствующий селектору selector. Если такового нет, ждёт, пока соответствующий элемент не будет добавлен в DOM.
- Ждёт проверки доступности для сопоставленного элемента, если не задан параметр force. Если элемент откреплён во время проверок, действие повторяется.
- При необходимости прокручивает элемент в область видимости.
- Использует page.mouse для наведения указателя мыши на центр элемента или заданную точку position.
Если все шаги не завершаются в течение указанного timeout, метод генерирует исключение TimeoutError. Передача нулевого таймаута отключает таймаут.
Использование
await frame.hover(selector); await frame.hover(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, используется первый.
-
optionsОбъект (необязательно)-
forceлогическое значение (необязательно)Пропускать ли проверки доступности. По умолчанию
false. -
modifiersМассив<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)Модификаторы клавиш. Обеспечивает нажатие только этих модификаторов во время операции, а затем восстанавливает предыдущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" соответствует "Control" в Windows и Linux и "Meta" в macOS.
-
noWaitAfterлогическое значение (необязательно)Устаревший параметрЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области заполнения элемента. Если не указано, используется некоторая видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0- таймаут отсутствует. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, метод выполняет только проверки доступности и пропускает действие. По умолчанию
false. Полезно для ожидания готовности элемента к действию без его выполнения. Обратите внимание, что нажатие клавишmodifiersпроизойдёт независимо отtrialдля тестирования элементов, видимых только при нажатии этих клавиш.
-
Возвращает
innerHTML
Добавлена до версии v1.9Не рекомендуетсяИспользуйте locator.innerHTML() на основе локейтора вместо этого. Подробнее о локейторах.
Возвращает element.innerHTML.
Использование
await frame.innerHTML(selector); await frame.innerHTML(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, используется первый.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0- таймаут отсутствует. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
innerText
Добавлена до версии v1.9Не рекомендуетсяИспользуйте locator.innerText() на основе локейтора вместо этого. Подробнее о локейторах.
Возвращает element.innerText.
Использование
await frame.innerText(selector); await frame.innerText(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор соответствовал только одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации, или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
inputValue
Не рекомендуетсяИспользуйте основанный на локаторе метод locator.inputValue() вместо этого. Подробнее о локаторе.
Возвращает значение для выбранного элемента input.value или <input> или <textarea> элемента.
Выбрасывает исключение для элементов, не являющихся полями ввода. Однако, если элемент находится внутри элемента <label>, у которого есть связанный control, возвращает значение control.
Использование
await frame.inputValue(selector); await frame.inputValue(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор соответствовал только одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации, или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
isChecked
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторе метод locator.isChecked() вместо этого. Подробнее о локаторе.
Возвращает, отмечен ли элемент. Выбрасывает исключение, если элемент не является чекбоксом или радиокнопкой.
Использование
await frame.isChecked(selector); await frame.isChecked(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор соответствовал только одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации, или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
isDisabled
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторе метод locator.isDisabled() вместо этого. Подробнее о локаторе.
Возвращает, является ли элемент отключенным, противоположное enabled.
Использование
await frame.isDisabled(selector); await frame.isDisabled(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор соответствовал только одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации, или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
isEditable
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторе метод locator.isEditable() вместо этого. Подробнее о локаторе.
Возвращает, является ли элемент редактируемым.
Использование
await frame.isEditable(selector); await frame.isEditable(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
0— нет таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
isHidden
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.isHidden() на основе локатора вместо этого. Подробнее о локатору.
Возвращает значение, указывающее, скрыт ли элемент, что является противоположностью видимости. Селектор, не соответствующий никаким элементам, считается скрытым.
Пример использования
await frame.isHidden(selector); await frame.isHidden(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)УстарелоЭтот параметр игнорируется. frame.isHidden() не ждет, пока элемент станет скрытым, и возвращает значение немедленно.
-
Возвращает
isVisible
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.isVisible() на основе локатора вместо этого. Подробнее о локатору.
Возвращает значение, указывающее, виден ли элемент. Селектор, не соответствующий никаким элементам, считается невидимым.
Пример использования
await frame.isVisible(selector); await frame.isVisible(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектор соответствует нескольким элементам, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор соответствовал одному элементу. Если селектор соответствует более чем одному элементу, вызов генерирует исключение.
-
timeoutчисло (необязательно)УстарелоЭтот параметр игнорируется. frame.isVisible() не ждет, пока элемент станет видимым, и возвращает значение немедленно.
-
Возвращает
press
Добавлен до версии v1.9Не рекомендуетсяИспользуйте locator.press() на основе локатора вместо этого. Подробнее о локатору.
Ключ может указать значение keyboardEvent.key или один символ для генерации текста. Полный набор значений ключ можно найти здесь. Примеры ключей:
F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, и т.д.
Также поддерживаются следующие модификаторы: Shift, Control, Alt, Meta, ShiftLeft, ControlOrMeta.
ControlOrMeta соответствует Control на Windows и Linux и Meta на macOS.
Удержание клавиши Shift приведет к вводу соответствующего текста в верхнем регистре.
Если ключ — это один символ, он чувствителен к регистру, поэтому значения a и A генерируют разные тексты.
Также поддерживаются сочетания клавиш, такие как key: "Control+o", key: "Control++ или key: "Control+Shift+T". При указании модификатора модификатор нажимается и удерживается, а затем нажимается последующая клавиша.
Пример использования
await frame.press(selector, key); await frame.press(selector, key, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, используется первый.
-
keyстрокаИмя клавиши для нажатия или символ для генерации, например,
ArrowLeftилиa. -
optionsобъект (необязательно)-
delayчисло (необязательно)Время ожидания между
keydownиkeyupв миллисекундах. По умолчанию 0. -
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр по умолчанию будет
trueв будущем.Действия, которые инициируют навигацию, ожидают завершения этой навигации и загрузки страниц. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация к недоступным страницам. По умолчанию
false. -
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в единственный элемент. Если селектор разрешается на несколько элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено через параметрactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
selectOption
Добавлена до версии v1.9Не рекомендуетсяИспользуйте метод locator.selectOption() на основе локеторов. Подробнее о локеторах см. здесь.
Этот метод ожидает элемент, соответствующий селектору selector, ожидает проверок действительности, ожидает, пока все указанные опции будут присутствовать в элементе <select> и выбирает эти опции.
Если целевой элемент не является элементом <select>, этот метод генерирует ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, вместо него будет использован control.
Возвращает массив значений опций, которые были успешно выбраны.
Вызывает событие change и input после выбора всех предоставленных опций.
Пример использования
// Single selection matching the value or label
frame.selectOption('select#colors', 'blue');
// single selection matching both the value and the label
frame.selectOption('select#colors', { label: 'Blue' });
// multiple selection
frame.selectOption('select#colors', 'red', 'green', 'blue'); Аргументы
-
selectorстрокаСелектор для запроса.
-
valuesnull | строка | ElementHandle | массив<строка> | объект | массив<ElementHandle> | массив<объект>-
valueстрока (необязательно)Соответствие по
option.value. Необязательно. -
labelстрока (необязательно)Соответствие по
option.label. Необязательно. -
indexчисло (необязательно)Соответствие по индексу. Необязательно.
Опции для выбора. Если у
<select>есть атрибутmultiple, выбираются все соответствующие опции, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Строковые значения соответствуют как значениям, так и меткам. Опция считается соответствующей, если все указанные свойства совпадают. -
-
optionsобъект (необязательно)-
forceлогическое значение (необязательно)Пропустить проверки действительности. По умолчанию
false. -
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр не оказывает влияния.
Этот параметр не оказывает влияния.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в единственный элемент. Если селектор разрешается на несколько элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено через параметрactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
setChecked
Не рекомендуетсяИспользуйте метод locator.setChecked() на основе локеторов. Подробнее о локеторах см. здесь.
Этот метод устанавливает или сбрасывает флажок элемента, соответствующего селектору selector, выполняя следующие шаги:
- Найти элемент, соответствующий селектору selector. Если такого элемента нет, подождать, пока соответствующий элемент не будет добавлен в DOM.
- Убедиться, что найденный элемент — это чекбокс или радиокнопка. В противном случае метод генерирует ошибку.
- Если у элемента уже установлено нужное состояние checked, метод возвращается сразу.
- Подождать проверок действительности для совпавшего элемента, если не задан параметр force. Если элемент открепляется во время проверок, вся операция повторяется.
- Прокрутить элемент в область видимости, если нужно.
- Использовать page.mouse для клика в центре элемента.
- Убедиться, что теперь элемент имеет нужное состояние checked или unchecked. В противном случае метод генерирует ошибку.
Если все шаги не завершатся в течение заданного таймаута timeout, метод сгенерирует ошибку TimeoutError. Передача нулевого таймаута отключает это.
Пример использования
await frame.setChecked(selector, checked); await frame.setChecked(selector, checked, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору соответствуют несколько элементов, будет использован первый.
-
checkedлогическоеФлаг для установки или сброса состояния чекбокса.
-
optionsОбъект (необязательно)-
forceлогическое (необязательно)Флаг для пропуска проверок доступности. По умолчанию
false. -
noWaitAfterлогическое (необязательно)УстаревшийЭтот параметр не оказывает влияния.
Этот параметр не оказывает влияния.
-
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области отступа элемента. Если не указано, используется какая-либо видимая точка элемента.
-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается в более чем один элемент, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или методами browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое (необязательно)Если установлено, метод выполняет только проверки доступности и пропускает действие. По умолчанию
false. Полезно для ожидания готовности элемента к действию без его выполнения.
-
Возвращает
setInputFiles
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторах метод locator.setInputFiles() вместо этого. Подробнее о локаторах.
Устанавливает значение поля ввода файла на указанные пути или файлы. Если некоторые из filePaths являются относительными путями, они разрешаются относительно текущего каталога. Для пустого массива, очищает выбранные файлы.
Этот метод ожидает, что селектор указывает на элемент input. Однако, если элемент находится внутри элемента <label>, имеющего связанный control, цель устанавливается на контроле.
Использование
await frame.setInputFiles(selector, files); await frame.setInputFiles(selector, files, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору соответствуют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
noWaitAfterлогическое (необязательно)УстаревшийЭтот параметр не оказывает влияния.
Этот параметр не оказывает влияния.
-
strictлогическое (необязательно)Если значение true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается в более чем один элемент, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить с помощью параметраactionTimeoutв конфигурации или методами browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
tap
Добавлен до v1.9Не рекомендуетсяИспользуйте основанный на локаторах метод locator.tap() вместо этого. Подробнее о локаторах.
Этот метод нажимает на элемент, соответствующий селектору selector, выполняя следующие шаги:
- Поиск элемента, соответствующего селектору selector. Если такого элемента нет, ожидание прикрепления соответствующего элемента к DOM.
- Ожидание проверок доступности для совпавшего элемента, если не задан параметр force. Если элемент открепляется во время проверок, все действие повторяется.
- Прокрутка элемента в область видимости при необходимости.
- Использование page.touchscreen для нажатия в центре элемента или в указанной позиции position.
Если все шаги не завершены в течение заданного таймаута timeout, метод генерирует исключение TimeoutError. Передача нулевого таймаута отключает его.
примечание
frame.tap()требует, чтобы параметрhasTouchконтекста браузера был установлен в значение true.
Использование
await frame.tap(selector); await frame.tap(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
forceлогическое значение (необязательно)Указать, нужно ли пропускать проверки активности. По умолчанию
false. -
modifiersМассив<"Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"> (необязательно)Модификаторы клавиш для нажатия. Гарантирует, что во время операции будут нажаты только эти модификаторы, а затем текущие модификаторы будут восстановлены. Если не указано, используются текущие нажатые модификаторы. «ControlOrMeta» соответствует «Control» в Windows и Linux и «Meta» в macOS.
-
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
positionОбъект (необязательно)Точка, используемая относительно левого верхнего угла области заполнения элемента. Если не указано, используется некоторая видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается на большее количество элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— нет таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, этот метод выполняет только проверки активности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент готов к действию, без его выполнения. Обратите внимание, что нажатие клавишmodifiersбудет осуществлено независимо отtrial, чтобы позволить тестирование элементов, которые видны только при нажатии этих клавиш.
-
Возвращает
textContent
Добавлен до версии 1.9Не рекомендуетсяВместо этого используйте locator.textContent() на основе локатора. Подробнее о локаторох.
Возвращает element.textContent.
Использование
await frame.textContent(selector); await frame.textContent(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsОбъект (необязательно)-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается на большее количество элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— нет таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
type
Добавлен до версии 1.9УстарелоВ большинстве случаев следует использовать locator.fill() вместо этого. Вам нужно нажимать клавиши по одной только если на странице есть специальная обработка клавиатуры — в этом случае используйте locator.pressSequentially().
Отправляет keydown, keypress/input, и keyup событие для каждого символа в тексте. frame.type можно использовать для отправки событий клавиатуры более мелко. Для заполнения значений в полях форм используйте frame.fill().
Для нажатия специальной клавиши, например Control или ArrowDown, используйте keyboard.press().
Использование
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
textстрокаТекст, который нужно ввести в фокусированный элемент.
-
optionsОбъект (необязательно)-
delayчисло (необязательно)Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
noWaitAfterлогическое значение (необязательно)УстарелоЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается на большее количество элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— нет таймаута. Значение по умолчанию может быть изменено с помощью параметраactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращает
uncheck
Добавлен до версии 1.9Не рекомендуетсяВместо этого используйте locator.uncheck() на основе локатора. Подробнее о локаторох.
Этот метод снимает отметку с элемента, соответствующего селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если такого элемента нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является элементом типа checkbox или radio input. Если нет, метод выбросит исключение. Если элемент уже снят с отметки, метод вернётся сразу.
- Подождите проверки действительности на найденном элементе, если опция force не установлена. Если элемент откреплён во время проверок, действие выполняется заново.
- Прокрутите элемент в область видимости, если необходимо.
- Используйте page.mouse для клика в центре элемента.
- Убедитесь, что элемент теперь снят с отметки. Если нет, метод выбросит исключение.
Если все этапы вместе не завершатся в течение указанного времени ожидания, метод выбросит исключение TimeoutError. Передача нулевого значения времени ожидания отключает это поведение.
Использование
await frame.uncheck(selector); await frame.uncheck(selector, options);
Аргументы
-
selectorстрокаСелектор для поиска элемента. Если селектору удовлетворяют несколько элементов, будет использован первый.
-
optionsобъект (необязательно)-
forceлогическое значение (необязательно)Необходимо ли пропустить проверки действительности. По умолчанию
false. -
noWaitAfterлогическое значение (необязательно)УстарелоЭта опция не оказывает влияния.
Эта опция не оказывает влияния.
-
positionобъект (необязательно)Точка, используемая относительно верхнего левого угла области заполнения элемента. Если не указано, используется какая-либо видимая точка элемента.
-
strictлогическое значение (необязательно)Если true, вызов требует, чтобы селектор возвращал единственный элемент. Если селектор возвращает более одного элемента, вызов выбросит исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без ограничения по времени. Значение по умолчанию можно изменить с помощью опцииactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout(). -
trialлогическое значение (необязательно)Если установлено, метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент готов к действию, без его выполнения.
-
Возвращает
waitForNavigation
Добавлен до версии 1.9УстарелЭтот метод потенциально небезопасен, используйте frame.waitForURL() вместо него.
Ожидает навигации фрейма и возвращает ответ основного ресурса. В случае множественных перенаправлений, навигация разрешится с ответом последнего перенаправления. В случае навигации на другой якорь или навигации из-за использования History API, навигация разрешится с null.
Использование
Этот метод ожидает, пока фрейм перейдёт на новый URL. Это полезно в случаях, когда код косвенно вызывает навигацию фрейма. Рассмотрим этот пример:
// Start waiting for navigation before clicking. Note no await.
const navigationPromise = page.waitForNavigation();
await page.getByText('Navigate after timeout').click();
await navigationPromise; ПримечаниеИспользование History API для изменения URL считается навигацией.
Аргументы
-
optionsобъект (необязательно)-
timeoutчисло (необязательно)Максимальное время выполнения в миллисекундах. По умолчанию
0— без ограничения по времени. Значение по умолчанию можно изменить с помощью опцииnavigationTimeoutв конфигурации или с помощью методов browserContext.setDefaultNavigationTimeout(), browserContext.setDefaultTimeout(), page.setDefaultNavigationTimeout() или page.setDefaultTimeout(). -
urlстрока | выражение регулярного типа | функция(URL):логическое значение (необязательно)Шаблон glob, выражение регулярного типа или предикат, получающий URL для сопоставления во время ожидания навигации. Обратите внимание, что если параметр является строкой без символов подстановок, метод будет ожидать навигации к URL, точно равному строке.
-
waitUntil"load" | "domcontentloaded" | "networkidle" | "commit" (необязательно)Когда считать операцию успешной, по умолчанию
load. События могут быть:-
'domcontentloaded'— считать операцию завершённой, когда сработает событиеDOMContentLoaded. -
'load'— считать операцию завершённой, когда сработает событиеload. -
'networkidle'— НЕ РЕКОМЕНДУЕТСЯ считать операцию завершённой, когда нет сетевых подключений в течение как минимум500мс. Не используйте этот метод для тестирования, вместо этого используйте веб-утверждения для оценки готовности. -
'commit'— считать операцию завершённой, когда получен сетевой ответ и началась загрузка документа.
-
-
Возвращает
waitForSelector
Добавлен до версии 1.9Не рекомендуетсяИспользуйте веб-утверждения, проверяющие видимость, или locator.waitFor() на основе локализации. Узнайте больше о локализациях.
Возвращает, когда элемент, указанный селектором, удовлетворяет опции состояния. Возвращает null при ожидании hidden или detached.
ПримечаниеPlaywright автоматически ждёт, пока элемент будет готов перед выполнением действия. Использование объектов Locator и веб-утверждений делает код свободным от waitForSelector.
Ожидайте, пока селектор удовлетворяет опции состояния (появление/исчезновение из DOM или видимость/скрытие). Если в момент вызова метода селектор уже удовлетворяет условию, метод вернётся сразу. Если селектор не удовлетворяет условию в течение времени ожидания миллисекунд, функция выбросит исключение.
Использование
Этот метод работает через навигации:
const { chromium } = require('playwright'); // Or 'firefox' or 'webkit'.
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
for (const currentURL of ['https://google.com', 'https://bbc.com']) {
await page.goto(currentURL);
const element = await page.mainFrame().waitForSelector('img');
console.log('Loaded image: ' + await element.getAttribute('src'));
}
await browser.close();
})(); Аргументы
-
selectorстрокаСелектор для поиска.
-
optionsОбъект (необязательно)-
state"прикреплённый" | "откреплённый" | "видимый" | "скрытый" (необязательно)По умолчанию
'visible'. Может быть:-
'attached'- ожидание, пока элемент появится в DOM. -
'detached'- ожидание, пока элемент не будет в DOM. -
'visible'- ожидание, пока у элемента будет непустая область отрисовки и нетvisibility:hidden. Обратите внимание, что элемент без содержимого или сdisplay:noneимеет пустую область отрисовки и не считается видимым. -
'hidden'- ожидание, пока элемент будет откреплён от DOM или у него будет пустая область отрисовки илиvisibility:hidden. Это противоположно опции'visible'.
-
-
strictбулево значение (необязательно)Если true, вызов требует, чтобы селектор разрешился в один элемент. Если селектор разрешается на большее количество элементов, вызов генерирует исключение.
-
timeoutчисло (необязательно)Максимальное время в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию может быть изменено с помощью опцииactionTimeoutв конфигурации или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
-
Возвращаемое значение
waitForTimeout
Добавлен до версии 1.9Не рекомендуетсяНикогда не используйте таймаут в продакшене. Тесты, ожидающие время, ненадёжны. Используйте действия Locator и веб-утверждения, которые автоматически ждут.
Ожидает заданный таймаут в миллисекундах.
Обратите внимание, что frame.waitForTimeout() следует использовать только для отладки. Тесты, использующие таймер в продакшене, будут ненадёжными. Используйте сигналы, такие как события сети, селекторы, которые становятся видимыми, и другие.
Использование
await frame.waitForTimeout(timeout);
Аргументы
-
timeoutчислоТаймаут ожидания
Возвращаемое значение
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-frame