Frame
В любой момент времени страница предоставляет текущее дерево фреймов через методы Page.MainFrame и Frame.ChildFrames.
Жизненный цикл объекта Frame контролируется тремя событиями, отправляемыми на объекте страницы:
- Page.FrameAttached - срабатывает, когда фрейм присоединяется к странице. Фрейм может быть присоединен к странице только один раз.
- Page.FrameNavigated - срабатывает, когда фрейм совершает навигацию на другой URL.
- Page.FrameDetached - срабатывает, когда фрейм отсоединяется от страницы. Фрейм может быть отсоединен от страницы только один раз.
Пример вывода дерева фреймов:
using Microsoft.Playwright;
using System;
using System.Threading.Tasks;
class FrameExamples
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Firefox.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.bing.com");
DumpFrameTree(page.MainFrame, string.Empty);
}
private static void DumpFrameTree(IFrame frame, string indent)
{
Console.WriteLine($"{indent}{frame.Url}");
foreach (var child in frame.ChildFrames)
DumpFrameTree(child, indent + " ");
}
}
Методы
AddScriptTagAsync
Добавлено до v1.9Возвращает добавленный тег, когда срабатывает событие onload скрипта или когда содержимое скрипта было внедрено в фрейм.
Добавляет тег <script> на страницу с указанным URL или содержимым.
Использование
await Frame.AddScriptTagAsync(options);
Аргументы
optionsFrameAddScriptTagOptions?(опционально)-
Contentstring? (опционально)#Сырой JavaScript-контент для внедрения в фрейм.
-
Путь к JavaScript-файлу для внедрения в фрейм. Если
pathявляется относительным путем, то он разрешается относительно текущей рабочей директории. -
Тип скрипта. Используйте 'module', чтобы загрузить JavaScript ES6 модуль. Подробнее см. script.
-
URL скрипта, который нужно добавить.
-
Возвращает
AddStyleTagAsync
Добавлено до v1.9Возвращает добавленный тег, когда срабатывает событие onload таблицы стилей или когда CSS-контент был внедрен в фрейм.
Добавляет тег <link rel="stylesheet"> на страницу с указанным URL или тег <style type="text/css"> с содержимым.
Использование
await Frame.AddStyleTagAsync(options);
Аргументы
optionsFrameAddStyleTagOptions?(опционально)
Возвращает
ChildFrames
Добавлено до v1.9Использование
Frame.ChildFrames
Возвращает
ContentAsync
Добавлено до v1.9Получает полный HTML-контент фрейма, включая doctype.
Использование
await Frame.ContentAsync();
Возвращает
DragAndDropAsync
Добавлено в: v1.13Использование
await Frame.DragAndDropAsync(source, target, options);
Аргументы
-
Селектор для поиска элемента, который нужно перетащить. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Селектор для поиска элемента, на который нужно сбросить. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameDragAndDropOptions?(опционально)-
Нужно ли обходить проверки actionability. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
SourcePositionSourcePosition? (опционально) Добавлено в: v1.14#-
X[float] -
Y[float]
Кликает на исходный элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
TargetPositionTargetPosition? (опционально) Добавлено в: v1.14#-
X[float] -
Y[float]
Сбрасывает на целевой элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout(). -
Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
EvaluateAsync
Добавлено до v1.9Возвращает значение, возвращаемое expression.
Если функция, переданная в Frame.EvaluateAsync(), возвращает Promise, то Frame.EvaluateAsync() будет ждать разрешения промиса и вернет его значение.
Если функция, переданная в Frame.EvaluateAsync(), возвращает значение, не являющееся Serializable, то Frame.EvaluateAsync() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуются через JSON: -0, NaN, Infinity, -Infinity.
Использование
var result = await frame.EvaluateAsync<int>("([x, y]) => Promise.resolve(x * y)", new[] { 7, 8 });
Console.WriteLine(result);
Также можно передать строку вместо функции.
Console.WriteLine(await frame.EvaluateAsync<int>("1 + 2")); // выводит "3"
Экземпляры ElementHandle могут быть переданы в качестве аргумента в Frame.EvaluateAsync():
var bodyHandle = await frame.EvaluateAsync("document.body");
var html = await frame.EvaluateAsync<string>("([body, suffix]) => body.innerHTML + suffix", new object [] { bodyHandle, "hello" });
await bodyHandle.DisposeAsync();
Аргументы
-
JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument? (опционально)#Опциональный аргумент для передачи в expression.
Возвращает
- [object]#
EvaluateHandleAsync
Добавлено до v1.9Возвращает значение, возвращаемое expression в виде JSHandle.
Единственное отличие между Frame.EvaluateAsync() и Frame.EvaluateHandleAsync() заключается в том, что Frame.EvaluateHandleAsync() возвращает JSHandle.
Если функция, переданная в Frame.EvaluateHandleAsync(), возвращает Promise, то Frame.EvaluateHandleAsync() будет ждать разрешения промиса и вернет его значение.
Использование
// Обработчик для объекта window.
var aWindowHandle = await frame.EvaluateHandleAsync("() => Promise.resolve(window)");
Также можно передать строку вместо функции.
var docHandle = await frame.EvaluateHandleAsync("document"); // Обработчик для `document`
Экземпляры JSHandle могут быть переданы в качестве аргумента в Frame.EvaluateHandleAsync():
var handle = await frame.EvaluateHandleAsync("() => document.body");
var resultHandle = await frame.EvaluateHandleAsync("([body, suffix]) => body.innerHTML + suffix", new object[] { handle, "hello" });
Console.WriteLine(await resultHandle.JsonValueAsync<string>());
await resultHandle.DisposeAsync();
Аргументы
-
JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument? (опционально)#Опциональный аргумент для передачи в expression.
Возвращает
FrameElementAsync
Добавлено до v1.9Возвращает обработчик элемента frame или iframe, который соответствует этому фрейму.
Это обратное действие к ElementHandle.ContentFrameAsync(). Обратите внимание, что возвращаемый обработчик фактически принадлежит родительскому фрейму.
Этот метод выбрасывает ошибку, если фрейм был отсоединен до того, как frameElement() вернет значение.
Использование
var frameElement = await frame.FrameElementAsync();
var contentFrame = await frameElement.ContentFrameAsync();
Console.WriteLine(frame == contentFrame); // -> True
Возвращает
FrameLocator
Добавлено в: v1.17При работе с iframes вы можете создать локатор фрейма, который войдет в iframe и позволит выбирать элементы в этом iframe.
Использование
Следующий фрагмент кода находит элемент с текстом "Submit" в iframe с id my-frame, например <iframe id="my-frame">:
var locator = frame.FrameLocator("#my-iframe").GetByText("Submit");
await locator.ClickAsync();
Аргументы
Возвращает
GetByAltText
Добавлено в: v1.27Позволяет находить элементы по их alt-тексту.
Использование
Например, этот метод найдет изображение по alt-тексту "Playwright logo":
<img alt='Playwright logo'>
await page.GetByAltText("Playwright logo").ClickAsync();
Аргументы
-
Текст для поиска элемента.
-
optionsFrameGetByAltTextOptions?(опционально)
Возвращает
GetByLabel
Добавлено в: v1.27Позволяет находить элементы ввода по тексту связанного элемента <label> или элемента aria-labelledby, или по атрибуту aria-label.
Использование
Например, этот метод найдет поля ввода по меткам "Username" и "Password" в следующем DOM:
<input aria-label="Username">
<label for="password-input">Password:</label>
<input id="password-input">
await page.GetByLabel("Username").FillAsync("john");
await page.GetByLabel("Password").FillAsync("secret");
Аргументы
-
Текст для поиска элемента.
-
optionsFrameGetByLabelOptions?(опционально)
Возвращает
GetByPlaceholder
Добавлено в: v1.27Позволяет находить элементы ввода по тексту-заполнителю.
Использование
Например, рассмотрим следующую структуру DOM.
<input type="email" placeholder="name@example.com" />
Вы можете заполнить поле ввода, найдя его по тексту-заполнителю:
await page
.GetByPlaceholder("name@example.com")
.FillAsync("playwright@microsoft.com");
Аргументы
-
Текст для поиска элемента.
-
optionsFrameGetByPlaceholderOptions?(опционально)
Возвращает
GetByRole
Добавлено в: v1.27Позволяет находить элементы по их ARIA роли, ARIA атрибутам и доступному имени.
Использование
Рассмотрим следующую структуру DOM.
<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>
Вы можете найти каждый элемент по его неявной роли:
await Expect(Page
.GetByRole(AriaRole.Heading, new() { Name = "Sign up" }))
.ToBeVisibleAsync();
await page
.GetByRole(AriaRole.Checkbox, new() { Name = "Subscribe" })
.CheckAsync();
await page
.GetByRole(AriaRole.Button, new() {
NameRegex = new Regex("submit", RegexOptions.IgnoreCase)
})
.ClickAsync();
Аргументы
-
roleenum AriaRole { 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 роль.
-
optionsFrameGetByRoleOptions?(опционально)-
Атрибут, который обычно устанавливается с помощью
aria-checkedили нативных<input type=checkbox>контролов.Узнайте больше о
aria-checked. -
Атрибут, который обычно устанавливается с помощью
aria-disabledилиdisabled.примечаниеВ отличие от большинства других атрибутов,
disabledнаследуется через иерархию DOM. Узнайте больше оaria-disabled. -
Exactbool? (опционально) Добавлено в: v1.28#Является ли Name|NameRegex точным совпадением: с учетом регистра и всей строки. По умолчанию false. Игнорируется, когда Name|NameRegex является регулярным выражением. Обратите внимание, что точное совпадение все равно обрезает пробелы.
-
Атрибут, который обычно устанавливается с помощью
aria-expanded.Узнайте больше о
aria-expanded. -
IncludeHiddenbool? (опционально)#Опция, которая контролирует, соответствуют ли скрытые элементы. По умолчанию, только не скрытые элементы, как определено ARIA, соответствуют селектору роли.
Узнайте больше о
aria-hidden. -
Числовой атрибут, который обычно присутствует для ролей
heading,listitem,row,treeitem, с значениями по умолчанию для элементов<h1>-<h6>.Узнайте больше о
aria-level. -
Name|NameRegexstring? | Regex? (опционально)#Опция для сопоставления доступного имени. По умолчанию, сопоставление не учитывает регистр и ищет подстроку, используйте Exact для управления этим поведением.
Узнайте больше о доступном имени.
-
Атрибут, который обычно устанавливается с помощью
aria-pressed.Узнайте больше о
aria-pressed. -
Атрибут, который обычно устанавливается с помощью
aria-selected.Узнайте больше о
aria-selected.
-
Возвращает
Детали
Селектор роли не заменяет аудиты доступности и тесты на соответствие, но дает раннюю обратную связь о руководствах ARIA.
Многие HTML-элементы имеют неявно определенную роль, которая распознается селектором роли. Вы можете найти все поддерживаемые роли здесь. Руководства ARIA не рекомендуют дублировать неявные роли и атрибуты, устанавливая role и/или aria-* атрибуты на значения по умолчанию.
GetByTestId
Добавлено в: v1.27Находит элемент по тестовому идентификатору.
Использование
Рассмотрим следующую структуру DOM.
<button data-testid="directions">Itinéraire</button>
Вы можете найти элемент по его тестовому идентификатору:
await page.GetByTestId("directions").ClickAsync();
Аргументы
Возвращает
Детали
По умолчанию атрибут data-testid используется как тестовый идентификатор. Используйте Selectors.SetTestIdAttribute(), чтобы настроить другой атрибут тестового идентификатора, если это необходимо.
GetByText
Добавлено в: v1.27Позволяет находить элементы, содержащие заданный текст.
См. также Locator.Filter(), который позволяет сопоставлять по другим критериям, таким как доступная роль, а затем фильтровать по содержимому текста.
Использование
Рассмотрим следующую структуру DOM:
<div>Hello <span>world</span></div>
<div>Hello</div>
Вы можете найти по подстроке текста, точной строке или регулярному выражению:
// Соответствует <span>
page.GetByText("world");
// Соответствует первому <div>
page.GetByText("Hello world");
// Соответствует второму <div>
page.GetByText("Hello", new() { Exact = true });
// Соответствует обоим <div>
page.GetByText(new Regex("Hello"));
// Соответствует второму <div>
page.GetByText(new Regex("^hello$", RegexOptions.IgnoreCase));
Аргументы
-
Текст для поиска элемента.
-
optionsFrameGetByTextOptions?(опционально)
Возвращает
Детали
Сопоставление по тексту всегда нормализует пробелы, даже при точном совпадении. Например, оно превращает несколько пробелов в один, превращает разрывы строк в пробелы и игнорирует начальные и конечные пробелы.
Элементы ввода типа button и submit сопоставляются по их value, а не по содержимому текста. Например, поиск по тексту "Log in" соответствует <input type=button value="Log in">.
GetByTitle
Добавлено в: v1.27Позволяет находить элементы по их атрибуту title.
Использование
Рассмотрим следующую структуру DOM.
<span title='Issues count'>25 issues</span>
Вы можете проверить количество проблем, найдя его по тексту заголовка:
await Expect(Page.GetByTitle("Issues count")).toHaveText("25 issues");
Аргументы
-
Текст для поиска элемента.
-
optionsFrameGetByTitleOptions?(опционально)
Возвращает
GotoAsync
Добавлено до v1.9Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация завершится с ответом последнего перенаправления.
Метод вызовет ошибку, если:
- произошла ошибка SSL (например, в случае самоподписанных сертификатов).
- целевой URL недействителен.
- Timeout превышен во время навигации.
- удаленный сервер не отвечает или недоступен.
- основной ресурс не удалось загрузить.
Метод не вызовет ошибку, если удаленный сервер вернет любой допустимый код состояния HTTP, включая 404 "Не найдено" и 500 "Внутренняя ошибка сервера". Код состояния для таких ответов можно получить, вызвав Response.Status.
Метод либо вызывает ошибку, либо возвращает ответ основного ресурса. Единственными исключениями являются навигация на about:blank или навигация на тот же URL с другим хэшем, которые будут успешными и вернут null.
Режим без головы не поддерживает навигацию к PDF-документу. См. проблему в исходном коде.
Использование
await Frame.GotoAsync(url, options);
Аргументы
-
URL для навигации фрейма. URL должен включать схему, например,
https://. -
optionsFrameGotoOptions?(опционально)-
Refererstring? (опционально)#Значение заголовка Referer. Если указано, оно будет иметь приоритет над значением заголовка referer, установленным с помощью Page.SetExtraHTTPHeadersAsync().
-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout(). -
WaitUntilenum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }?(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
IsDetached
Добавлено до v1.9Возвращает true, если фрейм был отсоединен, или false в противном случае.
Использование
Frame.IsDetached
Возвращает
IsEnabledAsync
Добавлено до v1.9Возвращает, является ли элемент включенным.
Использование
await Frame.IsEnabledAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsFrameIsEnabledOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
Locator
Добавлено в: v1.14Метод возвращает локатор элемента, который можно использовать для выполнения действий на этой странице/фрейме. Локатор разрешается в элемент непосредственно перед выполнением действия, поэтому серия действий на одном и том же локаторе может фактически выполняться на разных элементах DOM. Это произойдет, если структура DOM между этими действиями изменилась.
Использование
Frame.Locator(selector, options);
Аргументы
-
Селектор для использования при разрешении элемента DOM.
-
optionsFrameLocatorOptions?(опционально)-
Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например,
article, который имеетtext=Playwright, соответствует<article><div>Playwright</div></article>.Внутренний локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локатора, а не с корня документа. Например, вы можете найти
content, который имеетdivв<article><content><div>Playwright</div></content></article>. Однако поискcontent, который имеетarticle div, не удастся, потому что внутренний локатор должен быть относительным и не должен использовать элементы за пределамиcontent.Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.
-
HasNotLocator? (опционально) Добавлено в: v1.33#Соответствует элементам, которые не содержат элемента, соответствующего внутреннему локатору. Внутренний локатор запрашивается относительно внешнего. Например,
article, который не имеетdiv, соответствует<article><span>Playwright</span></article>.Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.
-
HasNotText|HasNotTextRegexstring? | Regex? (опционально) Добавлено в: v1.33#Соответствует элементам, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление не учитывает регистр и ищет подстроку.
-
HasText|HasTextRegexstring? | Regex? (опционально)#Соответствует элементам, содержащим указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление не учитывает регистр и ищет подстроку. Например,
"Playwright"соответствует<article><div>Playwright</div></article>.
-
Возвращает
Name
Добавлено до v1.9Возвращает атрибут name фрейма, как указано в теге.
Если имя пустое, возвращает атрибут id.
Это значение вычисляется один раз при создании фрейма и не будет обновляться, если атрибут изменится позже.
Использование
Frame.Name
Возвращает
Page
Добавлено до v1.9Возвращает страницу, содержащую этот фрейм.
Использование
Frame.Page
Возвращает
ParentFrame
Добавлено до v1.9Родительский фрейм, если он есть. Отсоединенные фреймы и основные фреймы возвращают null.
Использование
Frame.ParentFrame
Возвращает
SetContentAsync
Добавлено до v1.9Этот метод внутренне вызывает document.write(), наследуя все его специфические характеристики и поведения.
Использование
await Frame.SetContentAsync(html, options);
Аргументы
-
HTML-разметка для назначения странице.
-
optionsFrameSetContentOptions?(опционально)-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout(). -
WaitUntilenum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }?(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
TitleAsync
Добавлено до v1.9Возвращает заголовок страницы.
Использование
await Frame.TitleAsync();
Возвращает
Url
Добавлено до v1.9Возвращает URL фрейма.
Использование
Frame.Url
Возвращает
WaitForFunctionAsync
Добавлено до v1.9Возвращает, когда выражение возвращает истинное значение, возвращает это значение.
Использование
Frame.WaitForFunctionAsync() можно использовать для наблюдения за изменением размера области просмотра:
using Microsoft.Playwright;
using System.Threading.Tasks;
class FrameExamples
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Firefox.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetViewportSizeAsync(50, 50);
await page.MainFrame.WaitForFunctionAsync("window.innerWidth < 100");
}
}
Чтобы передать аргумент в предикат функции frame.waitForFunction:
var selector = ".foo";
await page.MainFrame.WaitForFunctionAsync("selector => !!document.querySelector(selector)", selector);
Аргументы
-
JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument? (опционально)#Необязательный аргумент для передачи в выражение.
-
optionsFrameWaitForFunctionOptions?(опционально)-
PollingInterval[float]? (опционально)#Если указано, то это интервал в миллисекундах, с которым функция будет выполняться. По умолчанию, если опция не указана, выражение выполняется в обратном вызове
requestAnimationFrame. -
Timeout[float]? (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
WaitForLoadStateAsync
Добавлено до v1.9Ожидает достижения требуемого состояния загрузки.
Это возвращает, когда фрейм достигает требуемого состояния загрузки, по умолчанию load. Навигация должна быть завершена, когда этот метод вызывается. Если текущий документ уже достиг требуемого состояния, метод разрешается немедленно.
Большую часть времени этот метод не нужен, потому что Playwright автоматически ожидает перед каждым действием.
Использование
await frame.ClickAsync("button");
await frame.WaitForLoadStateAsync(); // По умолчанию LoadState.Load
Аргументы
-
stateenum LoadState { Load, DOMContentLoaded, NetworkIdle }?(опционально)#Необязательное состояние загрузки для ожидания, по умолчанию
load. Если состояние уже достигнуто при загрузке текущего документа, метод разрешается немедленно. Может быть одним из:'load'- ожидать, пока событиеloadне будет вызвано.'domcontentloaded'- ожидать, пока событиеDOMContentLoadedне будет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ ожидать, пока не будет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.
-
optionsFrameWaitForLoadStateOptions?(опционально)-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout().
-
Возвращает
WaitForURLAsync
Добавлено в: v1.11Ожидает, пока фрейм перейдет на указанный URL.
Использование
await frame.ClickAsync("a.delayed-navigation"); // нажатие на ссылку косвенно вызовет навигацию
await frame.WaitForURLAsync("**/target.html");
Аргументы
-
urlstring | Regex | Func<string, bool>#Глобальный шаблон, шаблон регулярного выражения или предикат, получающий URL для сопоставления при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации к URL, который точно равен строке.
-
optionsFrameWaitForURLOptions?(опционально)-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout(). -
WaitUntilenum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }?(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
Устаревшие
CheckAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.CheckAsync() вместо этого. Подробнее о локаторах.
Этот метод отмечает элемент, соответствующий селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже отмечен, метод сразу возвращает управление.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse для нажатия в центре элемента.
- Убедитесь, что элемент теперь отмечен. Если нет, этот метод выбрасывает исключение.
Если все шаги не завершились в течение указанного времени ожидания, метод выбрасывает TimeoutError. Передача нулевого времени ожидания отключает это.
Использование
await Frame.CheckAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameCheckOptions?(опционально)-
Нужно ли обходить проверки действительности. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально) Добавлено в: v1.11#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout(). -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
ClickAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.ClickAsync() вместо этого. Подробнее о локаторах.
Этот метод кликает по элементу, соответствующему селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse для нажатия в центре элемента или в указанной позиции.
- Подождите, пока инициированные навигации не завершатся успешно или не завершатся с ошибкой, если не установлена опция NoWaitAfter.
Если все шаги не завершились в течение указанного времени ожидания, метод выбрасывает TimeoutError. Передача нулевого времени ожидания отключает это.
Использование
await Frame.ClickAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameClickOptions?(опционально)-
Buttonenum MouseButton { Left, Right, Middle }?(опционально)#По умолчанию
left. -
ClickCountint? (опционально)#По умолчанию 1. См. UIEvent.detail.
-
Delay[float]? (опционально)#Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
Нужно ли обходить проверки действительности. По умолчанию
false. -
ModifiersIEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#Модификаторы клавиш для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
NoWaitAfterbool? (опционально)#УстарелоЭта опция в будущем будет по умолчанию
true.Действия, инициирующие навигации, ожидают, пока эти навигации не произойдут и страницы не начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Эта опция нужна только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false. -
PositionPosition? (опционально)#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout(). -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурныемодификаторыбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
DblClickAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.DblClickAsync() вместо этого. Подробнее о локаторах.
Этот метод выполняет двойной клик по элементу, соответствующему селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse для двойного клика в центре элемента или в указанной позиции. Если первый клик
dblclick()вызывает событие навигации, этот метод выбросит исключение.
Если все шаги не завершились в течение указанного времени ожидания, метод выбрасывает TimeoutError. Передача нулевого времени ожидания отключает это.
frame.dblclick() генерирует два события click и одно событие dblclick.
Использование
await Frame.DblClickAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameDblClickOptions?(опционально)-
Buttonenum MouseButton { Left, Right, Middle }?(опционально)#По умолчанию
left. -
Delay[float]? (опционально)#Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
Нужно ли обходить проверки действительности. По умолчанию
false. -
ModifiersIEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#Модификаторы клавиш для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально)#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout(). -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурныемодификаторыбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
DispatchEventAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.DispatchEventAsync() вместо этого. Подробнее о локаторах.
Пример ниже генерирует событие click на элементе. Независимо от состояния видимости элемента, click генерируется. Это эквивалентно вызову element.click().
Использование
await frame.DispatchEventAsync("button#submit", "click");
Под капотом создается экземпляр события на основе указанного типа, инициализируется с помощью свойств eventInit и генерируется на элементе. События по умолчанию составные, отменяемые и всплывают.
Поскольку eventInit специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
Вы также можете указать JSHandle в качестве значения свойства, если хотите, чтобы живые объекты передавались в событие:
// Обратите внимание, что вы можете создать DataTransfer только в Chromium и Firefox
var dataTransfer = await frame.EvaluateHandleAsync("() => new DataTransfer()");
await frame.DispatchEventAsync("#source", "dragstart", new { dataTransfer });
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Тип DOM-события:
"click","dragstart"и т.д. -
eventInitEvaluationArgument? (опционально)#Опциональные свойства инициализации, специфичные для события.
-
optionsFrameDispatchEventOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
EvalOnSelectorAsync
Добавлено в: v1.9Этот метод не ожидает, пока элемент пройдет проверки действительности, и поэтому может привести к нестабильным тестам. Используйте Locator.EvaluateAsync(), другие вспомогательные методы Locator или утверждения, ориентированные на веб.
Возвращает значение, возвращаемое выражением.
Метод находит элемент, соответствующий указанному селектору в фрейме, и передает его в качестве первого аргумента выражению. Если ни один элемент не соответствует селектору, метод выбрасывает ошибку.
Если выражение возвращает Promise, то Frame.EvalOnSelectorAsync() будет ждать разрешения промиса и вернет его значение.
Использование
var searchValue = await frame.EvalOnSelectorAsync<string>("#search", "el => el.value");
var preloadHref = await frame.EvalOnSelectorAsync<string>("link[rel=preload]", "el => el.href");
var html = await frame.EvalOnSelectorAsync(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello");
Аргументы
-
Селектор для запроса.
-
JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument? (опционально)#Опциональный аргумент для передачи выражению.
-
optionsFrameEvalOnSelectorOptions?(опционально)
Возвращает
- [object]#
EvalOnSelectorAllAsync
Добавлено в: v1.9В большинстве случаев Locator.EvaluateAllAsync(), другие вспомогательные методы Locator и утверждения, ориентированные на веб, выполняют работу лучше.
Возвращает значение, возвращаемое выражением.
Метод находит все элементы, соответствующие указанному селектору в фрейме, и передает массив найденных элементов в качестве первого аргумента выражению.
Если выражение возвращает Promise, то Frame.EvalOnSelectorAllAsync() будет ждать разрешения промиса и вернет его значение.
Использование
var divsCount = await frame.EvalOnSelectorAllAsync<bool>("div", "(divs, min) => divs.length >= min", 10);
Аргументы
-
Селектор для запроса.
-
JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument? (опционально)#Опциональный аргумент для передачи выражению.
Возвращает
- [object]#
FillAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.FillAsync() вместо этого. Подробнее о локаторах.
Этот метод ожидает элемент, соответствующий селектору, ожидает проверки действительности, фокусирует элемент, заполняет его и генерирует событие input после заполнения. Обратите внимание, что вы можете передать пустую строку, чтобы очистить поле ввода.
Если целевой элемент не является элементом <input>, <textarea> или [contenteditable], этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный контрол, будет заполнен контрол.
Для отправки более детализированных событий клавиатуры используйте Locator.PressSequentiallyAsync().
Использование
await Frame.FillAsync(selector, value, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Значение для заполнения элемента
<input>,<textarea>или[contenteditable]. -
optionsFrameFillOptions?(опционально)-
Forcebool? (опционально) Добавлено в: v1.13#Нужно ли обходить проверки действительности. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
FocusAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.FocusAsync() вместо этого. Подробнее о локаторах.
Этот метод получает элемент с селектором и фокусирует его. Если нет элемента, соответствующего селектору, метод ждет, пока соответствующий элемент не появится в DOM.
Использование
await Frame.FocusAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameFocusOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
GetAttributeAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.GetAttributeAsync() вместо этого. Подробнее о локаторах.
Возвращает значение атрибута элемента.
Использование
await Frame.GetAttributeAsync(selector, name, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Имя атрибута, для которого нужно получить значение.
-
optionsFrameGetAttributeOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
HoverAsync
Добавлено до версии v1.9Используйте основанный на локаторах метод Locator.HoverAsync() вместо этого. Подробнее о локаторах.
Этот метод наводит курсор на элемент, соответствующий селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse для наведения курсора на центр элемента или на указанную позицию.
Если все шаги не завершились в течение указанного времени ожидания, метод выбрасывает TimeoutError. Передача нулевого времени ожидания отключает это.
Использование
await Frame.HoverAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameHoverOptions?(опционально)-
Нужно ли обходить проверки действительности. По умолчанию
false. -
ModifiersIEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#Модификаторы клавиш для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
NoWaitAfterbool? (опционально) Добавлено в: v1.28#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально)#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить время ожидания. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout(). -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурныемодификаторыбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
InnerHTMLAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.InnerHTMLAsync() вместо этого. Подробнее о локаторах.
Возвращает element.innerHTML.
Использование
await Frame.InnerHTMLAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameInnerHTMLOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
InnerTextAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.InnerTextAsync() вместо этого. Подробнее о локаторах.
Возвращает element.innerText.
Использование
await Frame.InnerTextAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameInnerTextOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
InputValueAsync
Добавлено в: v1.13Используйте основанный на локаторах Locator.InputValueAsync() вместо этого. Подробнее о локаторах.
Возвращает input.value для выбранного элемента <input>, <textarea> или <select>.
Выбрасывает исключение для элементов, не являющихся вводом. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный контрол, возвращает значение контрола.
Использование
await Frame.InputValueAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameInputValueOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
IsCheckedAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.IsCheckedAsync() вместо этого. Подробнее о локаторах.
Возвращает, отмечен ли элемент. Выбрасывает исключение, если элемент не является флажком или радиокнопкой.
Использование
await Frame.IsCheckedAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameIsCheckedOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
IsDisabledAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.IsDisabledAsync() вместо этого. Подробнее о локаторах.
Возвращает, отключен ли элемент, противоположность enabled.
Использование
await Frame.IsDisabledAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameIsDisabledOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
IsEditableAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.IsEditableAsync() вместо этого. Подробнее о локаторах.
Возвращает, является ли элемент редактируемым.
Использование
await Frame.IsEditableAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameIsEditableOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
IsHiddenAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.IsHiddenAsync() вместо этого. Подробнее о локаторах.
Возвращает, скрыт ли элемент, противоположность visible. selector, который не соответствует ни одному элементу, считается скрытым.
Использование
await Frame.IsHiddenAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameIsHiddenOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#УстарелоЭта опция игнорируется. Frame.IsHiddenAsync() не ждет, пока элемент станет скрытым, и возвращает результат немедленно.
-
Возвращает
IsVisibleAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.IsVisibleAsync() вместо этого. Подробнее о локаторах.
Возвращает, является ли элемент видимым. selector, который не соответствует ни одному элементу, считается невидимым.
Использование
await Frame.IsVisibleAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsFrameIsVisibleOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#УстарелоЭта опция игнорируется. Frame.IsVisibleAsync() не ждет, пока элемент станет видимым, и возвращает результат немедленно.
-
Возвращает
PressAsync
Добавлено до версии v1.9Используйте основанный на локаторах Locator.PressAsync() вместо этого. Подробнее о локаторах.
key может указывать предполагаемое значение keyboardEvent.key или один символ для генерации текста. Надмножество значений 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 будет вводить текст, соответствующий key в верхнем регистре.
Если key является одним символом, он чувствителен к регистру, поэтому значения a и A будут генерировать разные тексты.
Также поддерживаются сочетания клавиш, такие как key: "Control+o", key: "Control++ или key: "Control+Shift+T". При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.
Использование
await Frame.PressAsync(selector, key, options);
Аргументы
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeftилиa. -
optionsFramePressOptions?(опционально)-
Delay[float]? (опционально)#Время ожидания между
keydownиkeyupв миллисекундах. По умолчанию 0. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция по умолчанию будет
trueв будущем.Действия, инициирующие навигацию, ожидают, пока эта навигация произойдет и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится эта опция только в исключительных случаях, таких как навигация к недоступным страницам. По умолчанию
false. -
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
QuerySelectorAsync
Добавлено в: v1.9Используйте основанный на локаторах Frame.Locator() вместо этого. Подробнее о локаторах.
Возвращает ElementHandle, указывающий на элемент фрейма.
Использование ElementHandle не рекомендуется, используйте объекты Locator и веб-первичные утверждения вместо этого.
Метод находит элемент, соответствующий указанному селектору в фрейме. Если ни один элемент не соответствует селектору, возвращает null.
Использование
await Frame.QuerySelectorAsync(selector, options);
Аргументы
-
Селектор для запроса.
-
optionsFrameQuerySelectorOptions?(опционально)
Возвращает
QuerySelectorAllAsync
Добавлено в: v1.9Используйте основанный на локаторах Frame.Locator() вместо этого. Подробнее о локаторах.
Возвращает ElementHandles, указывающие на элементы фрейма.
Использование ElementHandle не рекомендуется, используйте объекты Locator вместо этого.
Метод находит все элементы, соответствующие указанному селектору в фрейме. Если ни один элемент не соответствует селектору, возвращает пустой массив.
Использование
await Frame.QuerySelectorAllAsync(selector);
Аргументы
Возвращает
RunAndWaitForNavigationAsync
Добавлено до версии v1.9Этот метод по своей природе является гонкой, пожалуйста, используйте Frame.WaitForURLAsync() вместо этого.
Ожидает навигации фрейма и возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация разрешится с ответом последнего перенаправления. В случае навигации к другому якорю или навигации из-за использования History API, навигация разрешится с null.
Использование
Этот метод ожидает, пока фрейм перейдет на новый URL. Это полезно, когда вы выполняете код, который косвенно вызывает навигацию фрейма. Рассмотрим этот пример:
await frame.RunAndWaitForNavigationAsync(async () =>
{
// Клик по ссылке косвенно вызовет навигацию.
await frame.ClickAsync("a.delayed-navigation");
});
// Разрешается после завершения навигации
Использование History API для изменения URL считается навигацией.
Аргументы
-
actionFunc<Task> Добавлено в: v1.12#Действие, которое вызывает событие.
-
optionsFrameRunAndWaitForNavigationOptions?(опционально)-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout(). -
Url|UrlRegex|UrlFuncstring? | Regex? | Func<string?, bool> (опционально)#Глобальный шаблон, регулярное выражение или предикат, получающий URL для совпадения при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации к URL, который точно равен строке.
-
WaitUntilenum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }?(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
WaitForNavigationAsync
Добавлено до версии v1.9Этот метод по своей природе является гонкой, пожалуйста, используйте Frame.WaitForURLAsync() вместо этого.
Ожидает навигации фрейма и возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация разрешится с ответом последнего перенаправления. В случае навигации к другому якорю или навигации из-за использования History API, навигация разрешится с null.
Использование
Этот метод ожидает, пока фрейм перейдет на новый URL. Это полезно, когда вы выполняете код, который косвенно вызывает навигацию фрейма. Рассмотрим этот пример:
await frame.RunAndWaitForNavigationAsync(async () =>
{
// Клик по ссылке косвенно вызовет навигацию.
await frame.ClickAsync("a.delayed-navigation");
});
// Разрешается после завершения навигации
Использование History API для изменения URL считается навигацией.
Аргументы
optionsFrameRunAndWaitForNavigationOptions?(опционально)-
Timeout[float]? (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultNavigationTimeout(), BrowserContext.SetDefaultTimeout(), Page.SetDefaultNavigationTimeout() или Page.SetDefaultTimeout(). -
Url|UrlRegex|UrlFuncstring? | Regex? | Func<string?, bool> (опционально)#Глобальный шаблон, регулярное выражение или предикат, получающий URL для совпадения при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации к URL, который точно равен строке.
-
WaitUntilenum WaitUntilState { Load, DOMContentLoaded, NetworkIdle, Commit }?(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
SelectOptionAsync
Добавлено до v1.9Используйте основанный на локаторах метод Locator.SelectOptionAsync() вместо этого. Подробнее о локаторах.
Этот метод ожидает элемент, соответствующий селектору, выполняет проверки действительности, ожидает, пока все указанные опции не будут присутствовать в элементе <select>, и выбирает эти опции.
Если целевой элемент не является элементом <select>, этот метод вызывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный контрол, будет использован контрол.
Возвращает массив значений опций, которые были успешно выбраны.
Вызывает событие change и input, как только все предоставленные опции были выбраны.
Использование
// Одиночный выбор, соответствующий значению или метке
await frame.SelectOptionAsync("select#colors", new[] { "blue" });
// одиночный выбор, соответствующий как значению, так и метке
await frame.SelectOptionAsync("select#colors", new[] { new SelectOptionValue() { Label = "blue" } });
// множественный выбор
await frame.SelectOptionAsync("select#colors", new[] { "red", "green", "blue" });
Аргументы
-
Селектор для поиска.
-
valuesstring | ElementHandle | IEnumerable |SelectOption| IEnumerable | IEnumerable?#-
Valuestring? (опционально)Соответствует
option.value. Опционально. -
Labelstring? (опционально)Соответствует
option.label. Опционально. -
Indexint? (опционально)Соответствует индексу. Опционально.
Опции для выбора. Если
<select>имеет атрибутmultiple, все соответствующие опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Строковые значения соответствуют как значениям, так и меткам. Опция считается соответствующей, если все указанные свойства совпадают. -
-
optionsFrameSelectOptionOptions?(опционально)-
Forcebool? (опционально) Добавлено в: v1.13#Следует ли обходить проверки действительности. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().
-
Возвращает
SetCheckedAsync
Добавлено в: v1.15Используйте основанный на локаторах метод Locator.SetCheckedAsync() вместо этого. Подробнее о локаторах.
Этот метод устанавливает или снимает флажок с элемента, соответствующего селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку.
- Если элемент уже имеет правильное состояние, этот метод возвращается немедленно.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если только не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse, чтобы щелкнуть в центре элемента.
- Убедитесь, что элемент теперь отмечен или не отмечен. Если нет, этот метод вызывает ошибку.
Если все шаги вместе не завершились в течение указанного Timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
await Frame.SetCheckedAsync(selector, checked, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
Установить или снять флажок.
-
optionsFrameSetCheckedOptions?(опционально)-
Следует ли обходить проверки действительности. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально)#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
-
Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы. -
Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
SetInputFilesAsync
Добавлено до v1.9Используйте основанный на локаторах метод Locator.SetInputFilesAsync() вместо этого. Подробнее о локаторах.
Устанавливает значение элемента ввода файла на указанные пути к файлам или файлы. Если некоторые из filePaths являются относительными путями, они разрешаются относительно текущей рабочей директории. Для пустого массива очищает выбранные файлы.
Этот метод ожидает, что селектор указывает на элемент ввода. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный контрол, будет использован контрол.
Использование
await Frame.SetInputFilesAsync(selector, files, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
filesstring | IEnumerable<string> |FilePayload| IEnumerable<FilePayload># -
optionsFrameSetInputFilesOptions?(опционально)-
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.
-
Возвращает
TapAsync
Добавлено до v1.9Используйте основанный на локаторах метод Locator.TapAsync() вместо этого. Подробнее о локаторах.
Этот метод выполняет нажатие на элемент, соответствующий селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если только не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Touchscreen, чтобы нажать в центре элемента или в указанной позиции.
Если все шаги вместе не завершились в течение указанного Timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
frame.tap() требует, чтобы опция hasTouch контекста браузера была установлена в true.
Использование
await Frame.TapAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsFrameTapOptions?(опционально)-
Следует ли обходить проверки действительности. По умолчанию
false. -
ModifiersIEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#Модификаторы клавиш для нажатия. Обеспечивает, чтобы только эти модификаторы были нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально)#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы. -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурныемодификаторыбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
TextContentAsync
Добавлено до v1.9Используйте основанный на локаторах метод Locator.TextContentAsync() вместо этого. Подробнее о локаторах.
Возвращает element.textContent.
Использование
await Frame.TextContentAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsFrameTextContentOptions?(опционально)-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.
-
Возвращает
TypeAsync
Добавлено до v1.9В большинстве случаев следует использовать Locator.FillAsync() вместо этого. Вам нужно нажимать клавиши по одной, только если на странице есть специальная обработка клавиатуры - в этом случае используйте Locator.PressSequentiallyAsync().
Отправляет событие keydown, keypress/input и keyup для каждого символа в тексте. frame.type можно использовать для отправки детализированных событий клавиатуры. Для заполнения значений в полях формы используйте Frame.FillAsync().
Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте Keyboard.PressAsync().
Использование
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
Текст для ввода в фокусированный элемент.
-
optionsFrameTypeOptions?(опционально)-
Delay[float]? (опционально)#Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.
-
Возвращает
UncheckAsync
Добавлено до v1.9Используйте основанный на локаторах метод Locator.UncheckAsync() вместо этого. Подробнее о локаторах.
Этот метод снимает флажок с элемента, соответствующего селектору, выполняя следующие шаги:
- Найдите элемент, соответствующий селектору. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод вызывает ошибку. Если элемент уже снят, этот метод возвращается немедленно.
- Подождите, пока не будут выполнены проверки действительности на найденном элементе, если только не установлена опция Force. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.Mouse, чтобы щелкнуть в центре элемента.
- Убедитесь, что элемент теперь снят. Если нет, этот метод вызывает ошибку.
Если все шаги вместе не завершились в течение указанного Timeout, этот метод вызывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
await Frame.UncheckAsync(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsFrameUncheckOptions?(опционально)-
Следует ли обходить проверки действительности. По умолчанию
false. -
NoWaitAfterbool? (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
PositionPosition? (опционально) Добавлено в: v1.11#-
X[float] -
Y[float]
Точка, используемая относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.
-
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы. -
Trialbool? (опционально) Добавлено в: v1.11#Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Возвращает
WaitForSelectorAsync
Добавлено до v1.9Используйте веб-утверждения, которые утверждают видимость, или основанный на локаторах метод Locator.WaitForAsync() вместо этого. Подробнее о локаторах.
Возвращает, когда элемент, указанный селектором, удовлетворяет опции State. Возвращает null, если ожидание для hidden или detached.
Playwright автоматически ожидает, пока элемент будет готов перед выполнением действия. Использование объектов Locator и веб-первых утверждений делает код свободным от ожидания селектора.
Ожидает, пока селектор не удовлетворит опцию State (либо появится/исчезнет из DOM, либо станет видимым/скрытым). Если в момент вызова метода селектор уже удовлетворяет условию, метод вернется немедленно. Если селектор не удовлетворяет условию в течение Timeout миллисекунд, функция вызовет ошибку.
Использование
Этот метод работает через навигации:
using Microsoft.Playwright;
using System;
using System.Threading.Tasks;
class FrameExamples
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
foreach (var currentUrl in new[] { "https://www.google.com", "https://bbc.com" })
{
await page.GotoAsync(currentUrl);
element = await page.MainFrame.WaitForSelectorAsync("img");
Console.WriteLine($"Загружено изображение: {await element.GetAttributeAsync("src")}");
}
}
}
Аргументы
-
Селектор для поиска.
-
optionsFrameWaitForSelectorOptions?(опционально)-
Stateenum WaitForSelectorState { Attached, Detached, Visible, Hidden }?(опционально)#По умолчанию
'visible'. Может быть:'attached'- ожидание, пока элемент будет присутствовать в DOM.'detached'- ожидание, пока элемент не будет присутствовать в DOM.'visible'- ожидание, пока элемент не будет иметь пустую ограничивающую рамку иvisibility:hidden. Обратите внимание, что элемент без содержимого или сdisplay:noneимеет пустую ограничивающую рамку и не считается видимым.'hidden'- ожидание, пока элемент либо не будет отсоединен от DOM, либо не будет иметь пустую ограничивающую рамку илиvisibility:hidden. Это противоположно опции'visible'.
-
Strictbool? (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Timeout[float]? (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.
-
Возвращает
WaitForTimeoutAsync
Добавлено до v1.9Никогда не ждите тайм-аута в производственной среде. Тесты, которые ждут времени, по своей природе ненадежны. Используйте действия Locator и веб-утверждения, которые ожидают автоматически.
Ожидает указанный тайм-аут в миллисекундах.
Обратите внимание, что frame.waitForTimeout() следует использовать только для отладки. Тесты, использующие таймер в производственной среде, будут ненадежными. Используйте сигналы, такие как сетевые события, селекторы, становящиеся видимыми, и другие вместо этого.
Использование
await Frame.WaitForTimeoutAsync(timeout);
Аргументы
-
timeout[float]#Тайм-аут для ожидания
Возвращает