Перейти к основному содержимому

Locator

Локаторы являются центральной частью автоматического ожидания и возможности повторных попыток в Playwright. Вкратце, локаторы представляют собой способ найти элемент(ы) на странице в любой момент. Локатор может быть создан с помощью метода Page.Locator().

Узнайте больше о локаторах.


Методы

AllAsync

Добавлено в: v1.29 locator.AllAsync

Когда локатор указывает на список элементов, этот метод возвращает массив локаторов, указывающих на соответствующие элементы.

примечание

Locator.AllAsync() не ожидает, пока элементы соответствуют локатору, и вместо этого немедленно возвращает все, что присутствует на странице.

Когда список элементов изменяется динамически, Locator.AllAsync() будет давать непредсказуемые и нестабильные результаты.

Когда список элементов стабилен, но загружается динамически, дождитесь полной загрузки списка перед вызовом Locator.AllAsync().

Использование

foreach (var li in await page.GetByRole("listitem").AllAsync())
await li.ClickAsync();

Возвращает


AllInnerTextsAsync

Добавлено в: v1.14 locator.AllInnerTextsAsync

Возвращает массив значений node.innerText для всех соответствующих узлов.

Проверка текста

Если вам нужно проверить текст на странице, предпочтите Expect(Locator).ToHaveTextAsync() с опцией UseInnerText, чтобы избежать нестабильности. Подробнее см. в руководстве по проверкам.

Использование

var texts = await page.GetByRole(AriaRole.Link).AllInnerTextsAsync();

Возвращает


AllTextContentsAsync

Добавлено в: v1.14 locator.AllTextContentsAsync

Возвращает массив значений node.textContent для всех соответствующих узлов.

Проверка текста

Если вам нужно проверить текст на странице, предпочтите Expect(Locator).ToHaveTextAsync(), чтобы избежать нестабильности. Подробнее см. в руководстве по проверкам.

Использование

var texts = await page.GetByRole(AriaRole.Link).AllTextContentsAsync();

Возвращает


And

Добавлено в: v1.34 locator.And

Создает локатор, который соответствует как этому локатору, так и аргументу локатора.

Использование

Следующий пример находит кнопку с определенным заголовком.

var button = page.GetByRole(AriaRole.Button).And(page.GetByTitle("Subscribe"));

Аргументы

  • locator Locator#

    Дополнительный локатор для соответствия.

Возвращает


AriaSnapshotAsync

Добавлено в: v1.49 locator.AriaSnapshotAsync

Создает снимок aria для данного элемента. Подробнее о снимках aria и Expect(Locator).ToMatchAriaSnapshotAsync() для соответствующей проверки.

Использование

await page.GetByRole(AriaRole.Link).AriaSnapshotAsync();

Аргументы

  • options LocatorAriaSnapshotOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Этот метод создает снимок aria для данного элемента. Снимок представляет собой строку, которая описывает состояние элемента и его дочерних элементов. Снимок может быть использован для проверки состояния элемента в тесте или для сравнения его с состоянием в будущем.

Снимок ARIA представлен с использованием языка разметки YAML:

  • Ключи объектов - это роли и необязательные доступные имена элементов.
  • Значения - это либо текстовое содержимое, либо массив дочерних элементов.
  • Общий статический текст может быть представлен с помощью ключа text.

Ниже приведена HTML-разметка и соответствующий снимок ARIA:

<ul aria-label="Links">
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<ul>
- list "Links":
- listitem:
- link "Home"
- listitem:
- link "About"

BlurAsync

Добавлено в: v1.28 locator.BlurAsync

Вызывает blur на элементе.

Использование

await Locator.BlurAsync(options);

Аргументы

  • options LocatorBlurOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


BoundingBoxAsync

Добавлено в: v1.14 locator.BoundingBoxAsync

Этот метод возвращает ограничивающий прямоугольник элемента, соответствующего локатору, или null, если элемент не виден. Ограничивающий прямоугольник рассчитывается относительно основного фрейма - который обычно совпадает с окном браузера.

Использование

var box = await page.GetByRole(AriaRole.Button).BoundingBoxAsync();
await page.Mouse.ClickAsync(box.X + box.Width / 2, box.Y + box.Height / 2);

Аргументы

  • options LocatorBoundingBoxOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

  • BoundingBox?#
    • x [float]

      координата x элемента в пикселях.

    • y [float]

      координата y элемента в пикселях.

    • width [float]

      ширина элемента в пикселях.

    • height [float]

      высота элемента в пикселях.

Детали

Прокрутка влияет на возвращаемый ограничивающий прямоугольник, аналогично Element.getBoundingClientRect. Это означает, что x и/или y могут быть отрицательными.

Элементы из дочерних фреймов возвращают ограничивающий прямоугольник относительно основного фрейма, в отличие от Element.getBoundingClientRect.

Предполагая, что страница статична, безопасно использовать координаты ограничивающего прямоугольника для выполнения ввода. Например, следующий фрагмент должен кликнуть в центр элемента.


CheckAsync

Добавлено в: v1.14 locator.CheckAsync

Убедитесь, что элемент флажка или радио-кнопки отмечен.

Использование

await page.GetByRole(AriaRole.Checkbox).CheckAsync();

Аргументы

  • options LocatorCheckOptions? (опционально)
    • Force bool? (опционально)#

      Нужно ли обходить проверки actionability. По умолчанию false.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает

Детали

Выполняет следующие шаги:

  1. Убедитесь, что элемент является флажком или радио-кнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже отмечен, этот метод немедленно возвращает управление.
  2. Ожидайте проверки actionability на элементе, если не установлена опция Force.
  3. Прокрутите элемент в вид, если это необходимо.
  4. Используйте Page.Mouse для клика в центр элемента.
  5. Убедитесь, что элемент теперь отмечен. Если нет, этот метод выбрасывает исключение.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.


ClearAsync

Добавлено в: v1.28 locator.ClearAsync

Очистите поле ввода.

Использование

await page.GetByRole(AriaRole.Textbox).ClearAsync();

Аргументы

  • options LocatorClearOptions? (опционально)
    • Force bool? (опционально)#

      Нужно ли обходить проверки actionability. По умолчанию false.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Этот метод ожидает проверки actionability, фокусирует элемент, очищает его и вызывает событие input после очистки.

Если целевой элемент не является <input>, <textarea> или [contenteditable] элементом, этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный контроль, контроль будет очищен вместо этого.


ClickAsync

Добавлено в: v1.14 locator.ClickAsync

Кликнуть по элементу.

Использование

Кликнуть по кнопке:

await page.GetByRole(AriaRole.Button).ClickAsync();

Щелчок с нажатой клавишей Shift в определенной позиции на холсте:

await page.Locator("canvas").ClickAsync(new() {
Button = MouseButton.Right,
Modifiers = new[] { KeyboardModifier.Shift },
Position = new Position { X = 0, Y = 0 }
});

Аргументы

  • options LocatorClickOptions? (опционально)
    • Button enum MouseButton { Left, Right, Middle }? (опционально)#

      По умолчанию left.

    • ClickCount int? (опционально)#

      по умолчанию 1. См. UIEvent.detail.

    • Delay [float]? (опционально)#

      Время ожидания между mousedown и mouseup в миллисекундах. По умолчанию 0.

    • Force bool? (опционально)#

      Нужно ли обходить проверки actionability. По умолчанию false.

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

      Модификаторы клавиш для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция по умолчанию будет true в будущем.

      Действия, которые инициируют навигации, ожидают, пока эти навигации не произойдут и страницы не начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Это может понадобиться только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию false.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает

Детали

Этот метод кликает по элементу, выполняя следующие шаги:

  1. Ожидайте проверки actionability на элементе, если не установлена опция Force.
  2. Прокрутите элемент в вид, если это необходимо.
  3. Используйте Page.Mouse для клика в центр элемента или указанную Position.
  4. Ожидайте, пока инициированные навигации либо завершатся успешно, либо потерпят неудачу, если не установлена опция NoWaitAfter.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.


ContentFrame

Добавлено в: v1.43 locator.ContentFrame

Возвращает объект FrameLocator, указывающий на тот же iframe, что и этот локатор.

Полезно, когда у вас есть объект Locator, полученный где-то, и позже вы хотите взаимодействовать с содержимым внутри фрейма.

Для обратной операции используйте FrameLocator.Owner.

Использование

var locator = Page.Locator("iframe[name=\"embedded\"]");
// ...
var frameLocator = locator.ContentFrame;
await frameLocator.GetByRole(AriaRole.Button).ClickAsync();

Возвращает


CountAsync

Добавлено в: v1.14 locator.CountAsync

Возвращает количество элементов, соответствующих локатору.

Проверка количества

Если вам нужно проверить количество элементов на странице, предпочтите Expect(Locator).ToHaveCountAsync(), чтобы избежать нестабильности. Подробнее см. в руководстве по проверкам.

Использование

int count = await page.GetByRole(AriaRole.Listitem).CountAsync();

Возвращает


DblClickAsync

Добавлено в: v1.14 locator.DblClickAsync

Двойной клик по элементу.

Использование

await Locator.DblClickAsync(options);

Аргументы

  • options LocatorDblClickOptions? (опционально)
    • Button enum MouseButton { Left, Right, Middle }? (опционально)#

      По умолчанию left.

    • Delay [float]? (опционально)#

      Время ожидания между mousedown и mouseup в миллисекундах. По умолчанию 0.

    • Force bool? (опционально)#

      Нужно ли обходить проверки actionability. По умолчанию false.

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

      Модификаторы клавиш для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить с помощью методов BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает

Детали

Этот метод выполняет двойной клик по элементу, выполняя следующие шаги:

  1. Ожидайте проверки actionability на элементе, если не установлена опция Force.
  2. Прокрутите элемент в вид, если это необходимо.
  3. Используйте Page.Mouse для двойного клика в центр элемента или указанную Position.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.

примечание

element.dblclick() генерирует два события click и одно событие dblclick.


DispatchEventAsync

Добавлено в: v1.14 locator.DispatchEventAsync

Программно отправляет событие на соответствующий элемент.

Использование

await locator.DispatchEventAsync("click");

Аргументы

  • type string#

    Тип DOM-события: "click", "dragstart" и т.д.

  • eventInit EvaluationArgument? (опционально)#

    Опциональные свойства инициализации, специфичные для события.

  • options LocatorDispatchEventOptions? (опционально)

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Приведенный выше фрагмент кода отправляет событие click на элемент. Независимо от состояния видимости элемента, click отправляется. Это эквивалентно вызову element.click().

Внутри создается экземпляр события на основе указанного type, инициализируется с помощью свойств eventInit и отправляется на элемент. События по умолчанию являются composed, cancelable и всплывают.

Поскольку eventInit специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:

Вы также можете указать JSHandle в качестве значения свойства, если хотите, чтобы живые объекты были переданы в событие:

var dataTransfer = await page.EvaluateHandleAsync("() => new DataTransfer()");
await locator.DispatchEventAsync("dragstart", new Dictionary<string, object>
{
{ "dataTransfer", dataTransfer }
});

DragToAsync

Добавлено в: v1.18 locator.DragToAsync

Перетащите исходный элемент к целевому элементу и отпустите его.

Использование

var source = Page.Locator("#source");
var target = Page.Locator("#target");

await source.DragToAsync(target);
// или укажите точные позиции относительно верхнего левого угла элементов:
await source.DragToAsync(target, new()
{
SourcePosition = new() { X = 34, Y = 7 },
TargetPosition = new() { X = 10, Y = 20 },
});

Аргументы

  • target Locator#

    Локатор элемента, к которому нужно перетащить.

  • options LocatorDragToOptions? (опционально)

    • Force bool? (опционально)#

      Следует ли обходить проверки actionability. По умолчанию false.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • SourcePosition SourcePosition? (опционально)#

      • X [float]

      • Y [float]

      Кликает на исходный элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

    • TargetPosition TargetPosition? (опционально)#

      • X [float]

      • Y [float]

      Отпускает на целевой элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает

Детали

Этот метод перетаскивает локатор к другому целевому локатору или целевой позиции. Сначала он перемещается к исходному элементу, выполняет mousedown, затем перемещается к целевому элементу или позиции и выполняет mouseup.


EvaluateAsync

Добавлено в: v1.14 locator.EvaluateAsync

Выполняет JavaScript-код на странице, принимая соответствующий элемент в качестве аргумента.

Использование

Аргументы

  • expression string#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument? (опционально)#

    Опциональный аргумент для передачи в expression.

  • options LocatorEvaluateOptions? (опционально)

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

  • [object]#

Детали

Возвращает значение, возвращаемое expression, вызванное с соответствующим элементом в качестве первого аргумента и arg в качестве второго аргумента.

Если expression возвращает Promise, этот метод будет ждать разрешения промиса и вернет его значение.

Если expression выбрасывает или отклоняет, этот метод выбрасывает исключение.


EvaluateAllAsync

Добавлено в: v1.14 locator.EvaluateAllAsync

Выполняет JavaScript-код на странице, принимая все соответствующие элементы в качестве аргумента.

Использование

var locator = page.Locator("div");
var moreThanTen = await locator.EvaluateAllAsync<bool>("(divs, min) => divs.length > min", 10);

Аргументы

  • expression string#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument? (опционально)#

    Опциональный аргумент для передачи в expression.

Возвращает

  • [object]#

Детали

Возвращает значение, возвращаемое expression, вызванное с массивом всех соответствующих элементов в качестве первого аргумента и arg в качестве второго аргумента.

Если expression возвращает Promise, этот метод будет ждать разрешения промиса и вернет его значение.

Если expression выбрасывает или отклоняет, этот метод выбрасывает исключение.


EvaluateHandleAsync

Добавлено в: v1.14 locator.EvaluateHandleAsync

Выполняет JavaScript-код на странице, принимая соответствующий элемент в качестве аргумента, и возвращает JSHandle с результатом.

Использование

await Locator.EvaluateHandleAsync(expression, arg, options);

Аргументы

  • expression string#

    JavaScript-выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument? (опционально)#

    Опциональный аргумент для передачи в expression.

  • options LocatorEvaluateHandleOptions? (опционально)

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Возвращает значение, возвращаемое expression в виде JSHandle, вызванное с соответствующим элементом в качестве первого аргумента и arg в качестве второго аргумента.

Единственное отличие между Locator.EvaluateAsync() и Locator.EvaluateHandleAsync() заключается в том, что Locator.EvaluateHandleAsync() возвращает JSHandle.

Если expression возвращает Promise, этот метод будет ждать разрешения промиса и вернет его значение.

Если expression выбрасывает или отклоняет, этот метод выбрасывает исключение.

Смотрите Page.EvaluateHandleAsync() для получения более подробной информации.


FillAsync

Добавлено в: v1.14 locator.FillAsync

Устанавливает значение в поле ввода.

Использование

await page.GetByRole(AriaRole.Textbox).FillAsync("example value");

Аргументы

  • value string#

    Значение для установки в элемент <input>, <textarea> или [contenteditable].

  • options LocatorFillOptions? (опционально)

    • Force bool? (опционально)#

      Следует ли обходить проверки actionability. По умолчанию false.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Этот метод ожидает проверки actionability, фокусируется на элементе, заполняет его и вызывает событие input после заполнения. Обратите внимание, что вы можете передать пустую строку, чтобы очистить поле ввода.

Если целевой элемент не является элементом <input>, <textarea> или [contenteditable], этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, будет заполнен именно этот контрол.

Для отправки более детализированных событий клавиатуры используйте Locator.PressSequentiallyAsync().


Filter

Добавлено в: v1.22 locator.Filter

Этот метод сужает существующий локатор в соответствии с опциями, например, фильтрует по тексту. Его можно использовать в цепочке для многократной фильтрации.

Использование

var rowLocator = page.Locator("tr");
// ...
await rowLocator
.Filter(new() { HasText = "text in column 1" })
.Filter(new() {
Has = page.GetByRole(AriaRole.Button, new() { Name = "column 2 button" } )
})
.ScreenshotAsync();

Аргументы

  • options LocatorFilterOptions? (опционально)
    • Has Locator? (опционально)#

      Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например, article, который имеет text=Playwright, соответствует <article><div>Playwright</div></article>.

      Внутренний локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локатора, а не с корня документа. Например, вы можете найти content, который имеет div в <article><content><div>Playwright</div></content></article>. Однако поиск content, который имеет article div, не удастся, потому что внутренний локатор должен быть относительным и не должен использовать элементы за пределами content.

      Обратите внимание, что внешние и внутренние локаторы должны принадлежать к одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

    • HasNot Locator? (опционально) Добавлено в: v1.33#

      Соответствует элементам, которые не содержат элемент, соответствующий внутреннему локатору. Внутренний локатор запрашивается относительно внешнего. Например, article, который не имеет div, соответствует <article><span>Playwright</span></article>.

      Обратите внимание, что внешние и внутренние локаторы должны принадлежать к одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

    • HasNotText|HasNotTextRegex string? | Regex? (опционально) Добавлено в: v1.33#

      Соответствует элементам, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление нечувствительно к регистру и ищет подстроку.

    • HasText|HasTextRegex string? | Regex? (опционально)#

      Соответствует элементам, содержащим указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление нечувствительно к регистру и ищет подстроку. Например, "Playwright" соответствует <article><div>Playwright</div></article>.

    • Visible bool? (опционально) Добавлено в: v1.51#

      Соответствует только видимым или невидимым элементам.

Возвращает


First

Добавлено в: v1.14 locator.First

Возвращает локатор к первому соответствующему элементу.

Использование

Locator.First

Возвращает


FocusAsync

Добавлено в: v1.14 locator.FocusAsync

Вызывает focus на соответствующем элементе.

Использование

await Locator.FocusAsync(options);

Аргументы

  • options LocatorFocusOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


FrameLocator

Добавлено в: v1.17 locator.FrameLocator

При работе с iframes вы можете создать локатор фрейма, который войдет в iframe и позволит находить элементы в этом iframe:

Использование

var locator = page.FrameLocator("iframe").GetByText("Submit");
await locator.ClickAsync();

Аргументы

  • selector string#

    Селектор для использования при разрешении DOM-элемента.

Возвращает


GetAttributeAsync

Добавлено в: v1.14 locator.GetAttributeAsync

Возвращает значение атрибута соответствующего элемента.

Проверка атрибутов

Если вам нужно проверить атрибут элемента, предпочтите Expect(Locator).ToHaveAttributeAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

await Locator.GetAttributeAsync(name, options);

Аргументы

  • name string#

    Имя атрибута, для которого нужно получить значение.

  • options LocatorGetAttributeOptions? (опционально)

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить таймаут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


GetByAltText

Добавлено в: v1.27 locator.GetByAltText

Позволяет находить элементы по их alt-тексту.

Использование

Например, этот метод найдет изображение по alt-тексту "Playwright logo":

<img alt='Playwright logo'>
await page.GetByAltText("Playwright logo").ClickAsync();

Аргументы

  • text string | Regex#

    Текст для поиска элемента.

  • options LocatorGetByAltTextOptions? (опционально)

    • Exact bool? (опционально)#

      Следует ли искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


GetByLabel

Добавлено в: v1.27 locator.GetByLabel

Позволяет находить элементы ввода по тексту связанного элемента <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");

Аргументы

  • text string | Regex#

    Текст для поиска элемента.

  • options LocatorGetByLabelOptions? (опционально)

    • Exact bool? (опционально)#

      Следует ли искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


GetByPlaceholder

Добавлено в: v1.27 locator.GetByPlaceholder

Позволяет находить элементы ввода по тексту-заполнителю.

Использование

Например, рассмотрим следующую структуру DOM.

<input type="email" placeholder="name@example.com" />

Вы можете заполнить поле ввода, найдя его по тексту-заполнителю:

await page
.GetByPlaceholder("name@example.com")
.FillAsync("playwright@microsoft.com");

Аргументы

  • text string | Regex#

    Текст для поиска элемента.

  • options LocatorGetByPlaceholderOptions? (опционально)

    • Exact bool? (опционально)#

      Следует ли искать точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при поиске по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


GetByRole

Добавлено в: v1.27 locator.GetByRole

Позволяет находить элементы по их 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();

Аргументы

  • role enum 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 роль.

  • options LocatorGetByRoleOptions? (опционально)

    • Checked bool? (опционально)#

      Атрибут, который обычно устанавливается с помощью aria-checked или нативных <input type=checkbox> контролов.

      Узнайте больше о aria-checked.

    • Disabled bool? (опционально)#

      Атрибут, который обычно устанавливается с помощью aria-disabled или disabled.

      примечание

      В отличие от большинства других атрибутов, disabled наследуется через иерархию DOM. Узнайте больше о aria-disabled.

    • Exact bool? (опционально) Добавлено в: v1.28#

      Указывает, должно ли Name|NameRegex совпадать точно: с учетом регистра и всей строки. По умолчанию false. Игнорируется, когда Name|NameRegex является регулярным выражением. Обратите внимание, что точное совпадение все равно обрезает пробелы.

    • Expanded bool? (опционально)#

      Атрибут, который обычно устанавливается с помощью aria-expanded.

      Узнайте больше о aria-expanded.

    • IncludeHidden bool? (опционально)#

      Опция, которая контролирует, будут ли скрытые элементы соответствовать. По умолчанию, только не скрытые элементы, как определено ARIA, соответствуют селектору роли.

      Узнайте больше о aria-hidden.

    • Level int? (опционально)#

      Числовой атрибут, который обычно присутствует для ролей heading, listitem, row, treeitem, с значениями по умолчанию для элементов <h1>-<h6>.

      Узнайте больше о aria-level.

    • Name|NameRegex string? | Regex? (опционально)#

      Опция для сопоставления доступного имени. По умолчанию, сопоставление не чувствительно к регистру и ищет подстроку, используйте Exact для управления этим поведением.

      Узнайте больше о доступном имени.

    • Pressed bool? (опционально)#

      Атрибут, который обычно устанавливается с помощью aria-pressed.

      Узнайте больше о aria-pressed.

    • Selected bool? (опционально)#

      Атрибут, который обычно устанавливается с помощью aria-selected.

      Узнайте больше о aria-selected.

Возвращает

Детали

Селектор ролей не заменяет аудиты доступности и тесты на соответствие, но дает раннюю обратную связь о руководствах ARIA.

Многие HTML-элементы имеют неявно определенную роль, которая распознается селектором ролей. Вы можете найти все поддерживаемые роли здесь. Руководства ARIA не рекомендуют дублировать неявные роли и атрибуты, устанавливая role и/или aria-* атрибуты на значения по умолчанию.


GetByTestId

Добавлено в: v1.27 locator.GetByTestId

Находит элемент по тестовому идентификатору.

Использование

Рассмотрим следующую структуру DOM.

<button data-testid="directions">Itinéraire</button>

Вы можете найти элемент по его тестовому идентификатору:

await page.GetByTestId("directions").ClickAsync();

Аргументы

  • testId string | Regex#

    Идентификатор для нахождения элемента.

Возвращает

Детали

По умолчанию, атрибут data-testid используется как тестовый идентификатор. Используйте Selectors.SetTestIdAttribute(), чтобы настроить другой атрибут тестового идентификатора, если это необходимо.


GetByText

Добавлено в: v1.27 locator.GetByText

Позволяет находить элементы, содержащие заданный текст.

Смотрите также 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));

Аргументы

  • text string | Regex#

    Текст для нахождения элемента.

  • options LocatorGetByTextOptions? (опционально)

    • Exact bool? (опционально)#

      Указывает, должно ли быть найдено точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при нахождении по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает

Детали

Сопоставление по тексту всегда нормализует пробелы, даже при точном совпадении. Например, оно превращает несколько пробелов в один, превращает разрывы строк в пробелы и игнорирует начальные и конечные пробелы.

Элементы ввода типа button и submit сопоставляются по их value, а не по содержимому текста. Например, нахождение по тексту "Log in" совпадает с <input type=button value="Log in">.


GetByTitle

Добавлено в: v1.27 locator.GetByTitle

Позволяет находить элементы по их атрибуту title.

Использование

Рассмотрим следующую структуру DOM.

<span title='Issues count'>25 issues</span>

Вы можете проверить количество проблем, найдя его по тексту заголовка:

await Expect(Page.GetByTitle("Issues count")).toHaveText("25 issues");

Аргументы

  • text string | Regex#

    Текст для нахождения элемента.

  • options LocatorGetByTitleOptions? (опционально)

    • Exact bool? (опционально)#

      Указывает, должно ли быть найдено точное совпадение: с учетом регистра и всей строки. По умолчанию false. Игнорируется при нахождении по регулярному выражению. Обратите внимание, что точное совпадение все равно обрезает пробелы.

Возвращает


HighlightAsync

Добавлено в: v1.20 locator.HighlightAsync

Подсвечивает соответствующий элемент(ы) на экране. Полезно для отладки, не коммитьте код, использующий Locator.HighlightAsync().

Использование

await Locator.HighlightAsync();

Возвращает


HoverAsync

Добавлено в: v1.14 locator.HoverAsync

Наведение курсора на соответствующий элемент.

Использование

await page.GetByRole(AriaRole.Link).HoverAsync();

Аргументы

  • options LocatorHoverOptions? (опционально)
    • Force bool? (опционально)#

      Указывает, следует ли обходить проверки действительности. По умолчанию false.

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

      Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы будут нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.

    • NoWaitAfter bool? (опционально) Добавлено в: v1.28#

      Устарело

      Эта опция не имеет эффекта.

      Эта опция не имеет эффекта.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные модификаторы будут нажаты независимо от trial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.

Возвращает

Детали

Этот метод наводит курсор на элемент, выполняя следующие шаги:

  1. Ожидание проверок действительности на элементе, если не установлена опция Force.
  2. Прокрутка элемента в вид, если это необходимо.
  3. Использование Page.Mouse для наведения курсора на центр элемента или указанную Position.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.


InnerHTMLAsync

Добавлено в: v1.14 locator.InnerHTMLAsync

Возвращает element.innerHTML.

Использование

await Locator.InnerHTMLAsync(options);

Аргументы

  • options LocatorInnerHTMLOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


InnerTextAsync

Добавлено в: v1.14 locator.InnerTextAsync

Возвращает element.innerText.

Проверка текста

Если вам нужно проверить текст на странице, предпочтите Expect(Locator).ToHaveTextAsync() с опцией UseInnerText, чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

await Locator.InnerTextAsync(options);

Аргументы

  • options LocatorInnerTextOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


InputValueAsync

Добавлено в: v1.14 locator.InputValueAsync

Возвращает значение для соответствующего элемента <input>, <textarea> или <select>.

Проверка значения

Если вам нужно проверить значение ввода, предпочтите Expect(Locator).ToHaveValueAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

String value = await page.GetByRole(AriaRole.Textbox).InputValueAsync();

Аргументы

  • options LocatorInputValueOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Выбрасывает исключение для элементов, которые не являются input, textarea или select. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный контрол, возвращает значение контрола.


IsCheckedAsync

Добавлено в: v1.14 locator.IsCheckedAsync

Возвращает, отмечен ли элемент. Выбрасывает исключение, если элемент не является чекбоксом или радио-кнопкой.

Проверка состояния

Если вам нужно проверить, что чекбокс отмечен, предпочтите Expect(Locator).ToBeCheckedAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

var isChecked = await page.GetByRole(AriaRole.Checkbox).IsCheckedAsync();

Аргументы

  • options LocatorIsCheckedOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


IsDisabledAsync

Добавлено в: v1.14 locator.IsDisabledAsync

Возвращает, отключен ли элемент, противоположность включенному.

Проверка состояния

Если вам нужно проверить, что элемент отключен, предпочтите Expect(Locator).ToBeDisabledAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

Boolean disabled = await page.GetByRole(AriaRole.Button).IsDisabledAsync();

Аргументы

  • options LocatorIsDisabledOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


IsEditableAsync

Добавлено в: v1.14 locator.IsEditableAsync

Возвращает, является ли элемент редактируемым. Если целевой элемент не является <input>, <textarea>, <select>, [contenteditable] и не имеет роли, позволяющей [aria-readonly], этот метод выбрасывает ошибку.

Проверка состояния

Если вам нужно проверить, что элемент редактируем, предпочтите Expect(Locator).ToBeEditableAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

Boolean editable = await page.GetByRole(AriaRole.Textbox).IsEditableAsync();

Аргументы

  • options LocatorIsEditableOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


IsEnabledAsync

Добавлено в: v1.14 locator.IsEnabledAsync

Возвращает, включен ли элемент включен.

Проверка состояния

Если вам нужно проверить, что элемент включен, предпочтите Expect(Locator).ToBeEnabledAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

Boolean enabled = await page.GetByRole(AriaRole.Button).IsEnabledAsync();

Аргументы

  • options LocatorIsEnabledOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


IsHiddenAsync

Добавлено в: v1.14 locator.IsHiddenAsync

Возвращает, скрыт ли элемент, противоположность видимому.

Проверка видимости

Если вам нужно проверить, что элемент скрыт, предпочтите Expect(Locator).ToBeHiddenAsync(), чтобы избежать нестабильности. См. руководство по проверкам для получения более подробной информации.

Использование

Boolean hidden = await page.GetByRole(AriaRole.Button).IsHiddenAsync();

Аргументы

  • options LocatorIsHiddenOptions? (опционально)
    • Timeout [float]? (опционально)#

      Устарело

      Эта опция игнорируется. Locator.IsHiddenAsync() не ждет, пока элемент станет скрытым, и возвращает результат немедленно.

Возвращает


IsVisibleAsync

Добавлено в: v1.14 locator.IsVisibleAsync

Возвращает, является ли элемент видимым.

Проверка видимости

Если вам нужно проверить, что элемент видим, предпочтите использовать Expect(Locator).ToBeVisibleAsync(), чтобы избежать нестабильности. Подробнее см. в руководстве по утверждениям.

Использование

Boolean visible = await page.GetByRole(AriaRole.Button).IsVisibleAsync();

Аргументы

  • options LocatorIsVisibleOptions? (необязательно)
    • Timeout [float]? (необязательно)#

      Устарело

      Этот параметр игнорируется. Locator.IsVisibleAsync() не ждет, пока элемент станет видимым, и возвращает результат немедленно.

Возвращает


Last

Добавлено в: v1.14 locator.Last

Возвращает локатор к последнему совпадающему элементу.

Использование

var banana = await page.GetByRole(AriaRole.Listitem).Last(1);

Возвращает


Locator

Добавлено в: v1.14 locator.Locator

Метод находит элемент, соответствующий указанному селектору в поддереве локатора. Он также принимает параметры фильтрации, аналогичные методу Locator.Filter().

Узнайте больше о локаторах.

Использование

Locator.Locator(selectorOrLocator, options);

Аргументы

  • selectorOrLocator string | Locator#

    Селектор или локатор для использования при разрешении DOM элемента.

  • options LocatorLocatorOptions? (необязательно)

    • Has Locator? (необязательно)#

      Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например, article, который имеет text=Playwright, соответствует <article><div>Playwright</div></article>.

      Внутренний локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локатора, а не с корня документа. Например, вы можете найти content, который имеет div в <article><content><div>Playwright</div></content></article>. Однако поиск content, который имеет article div, не удастся, потому что внутренний локатор должен быть относительным и не должен использовать элементы за пределами content.

      Обратите внимание, что внешние и внутренние локаторы должны принадлежать к одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

    • HasNot Locator? (необязательно) Добавлено в: v1.33#

      Соответствует элементам, которые не содержат элемент, соответствующий внутреннему локатору. Внутренний локатор запрашивается относительно внешнего. Например, article, который не имеет div, соответствует <article><span>Playwright</span></article>.

      Обратите внимание, что внешние и внутренние локаторы должны принадлежать к одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.

    • HasNotText|HasNotTextRegex string? | Regex? (необязательно) Добавлено в: v1.33#

      Соответствует элементам, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление нечувствительно к регистру и ищет подстроку.

    • HasText|HasTextRegex string? | Regex? (необязательно)#

      Соответствует элементам, содержащим указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче string сопоставление нечувствительно к регистру и ищет подстроку. Например, "Playwright" соответствует <article><div>Playwright</div></article>.

Возвращает


Nth

Добавлено в: v1.14 locator.Nth

Возвращает локатор к n-му совпадающему элементу. Индексация начинается с нуля, nth(0) выбирает первый элемент.

Использование

var banana = await page.GetByRole(AriaRole.Listitem).Nth(2);

Аргументы

Возвращает


Or

Добавлено в: v1.33 locator.Or

Создает локатор, соответствующий всем элементам, которые соответствуют одному или обоим из двух локаторов.

Обратите внимание, что когда оба локатора что-то совпадают, результирующий локатор будет иметь несколько совпадений, что может привести к нарушению строгости локатора.

Использование

Рассмотрим сценарий, когда вы хотите нажать кнопку "Новое письмо", но иногда вместо этого появляется диалоговое окно настроек безопасности. В этом случае вы можете ожидать либо кнопку "Новое письмо", либо диалоговое окно и действовать соответственно.

примечание

Если на экране появляются и кнопка "Новое письмо", и диалоговое окно безопасности, локатор "или" будет соответствовать обоим из них, возможно, вызывая ошибку "нарушение строгого режима". В этом случае вы можете использовать Locator.First, чтобы соответствовать только одному из них.

var newEmail = page.GetByRole(AriaRole.Button, new() { Name = "New" });
var dialog = page.GetByText("Confirm security settings");
await Expect(newEmail.Or(dialog).First).ToBeVisibleAsync();
if (await dialog.IsVisibleAsync())
await page.GetByRole(AriaRole.Button, new() { Name = "Dismiss" }).ClickAsync();
await newEmail.ClickAsync();

Аргументы

  • locator Locator#

    Альтернативный локатор для соответствия.

Возвращает


Page

Добавлено в: v1.19 locator.Page

Страница, к которой принадлежит этот локатор.

Использование

Locator.Page

Возвращает


PressAsync

Добавлено в: v1.14 locator.PressAsync

Фокусируется на совпадающем элементе и нажимает комбинацию клавиш.

Использование

await page.GetByRole(AriaRole.Textbox).PressAsync("Backspace");

Аргументы

  • key string#

    Имя клавиши для нажатия или символ для генерации, например, ArrowLeft или a.

  • options LocatorPressOptions? (необязательно)

    • Delay [float]? (необязательно)#

      Время ожидания между keydown и keyup в миллисекундах. По умолчанию 0.

    • NoWaitAfter bool? (необязательно)#

      Устарело

      Этот параметр по умолчанию будет true в будущем.

      Действия, инициирующие навигацию, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация к недоступным страницам. По умолчанию false.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Фокусируется на элементе, а затем использует Keyboard.DownAsync() и Keyboard.UpAsync().

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". При указании с модификатором модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.


PressSequentiallyAsync

Добавлено в: v1.38 locator.PressSequentiallyAsync
подсказка

В большинстве случаев вам следует использовать Locator.FillAsync() вместо этого. Вам нужно нажимать клавиши одну за другой, только если на странице есть специальная обработка клавиатуры.

Фокусируется на элементе, а затем отправляет событие keydown, keypress/input и keyup для каждого символа в тексте.

Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте Locator.PressAsync().

Использование

await locator.PressSequentiallyAsync("Hello"); // Печатает мгновенно
await locator.PressSequentiallyAsync("World", new() { Delay = 100 }); // Печатает медленнее, как пользователь

Пример ввода в текстовое поле и затем отправки формы:

var locator = page.GetByLabel("Password");
await locator.PressSequentiallyAsync("my password");
await locator.PressAsync("Enter");

Аргументы

  • text string#

    Строка символов для последовательного нажатия в сфокусированном элементе.

  • options LocatorPressSequentiallyOptions? (необязательно)

    • Delay [float]? (необязательно)#

      Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.

    • NoWaitAfter bool? (необязательно)#

      Устарело

      Этот параметр не имеет эффекта.

      Этот параметр не имеет эффекта.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


ScreenshotAsync

Добавлено в: v1.14 locator.ScreenshotAsync

Сделать скриншот элемента, соответствующего локатору.

Использование

await page.GetByRole(AriaRole.Link).ScreenshotAsync();

Отключить анимации и сохранить скриншот в файл:

await page.GetByRole(AriaRole.Link).ScreenshotAsync(new() {
Animations = ScreenshotAnimations.Disabled,
Path = "link.png"
});

Аргументы

  • options LocatorScreenshotOptions? (необязательно)
    • Animations enum ScreenshotAnimations { Disabled, Allow }? (необязательно)#

      При установке в "disabled", останавливает CSS-анимации, CSS-переходы и веб-анимации. Анимации получают разное обращение в зависимости от их продолжительности:

      • конечные анимации быстро перематываются до завершения, так что они вызовут событие transitionend.
      • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.

      По умолчанию "allow", что оставляет анимации нетронутыми.

    • Caret enum ScreenshotCaret { Hide, Initial }? (необязательно)#

      При установке в "hide", скриншот скроет текстовый курсор. При установке в "initial", поведение текстового курсора не изменится. По умолчанию "hide".

    • Mask IEnumerable?<Locator> (необязательно)#

      Укажите локаторы, которые должны быть замаскированы при создании скриншота. Замаскированные элементы будут перекрыты розовой рамкой #FF00FF (настраивается с помощью MaskColor), которая полностью покрывает их ограничивающую рамку. Маска также применяется к невидимым элементам, см. Соответствие только видимым элементам, чтобы отключить это.

    • MaskColor string? (необязательно) Добавлено в: v1.35#

      Укажите цвет наложенной рамки для замаскированных элементов в формате цвета CSS. Цвет по умолчанию - розовый #FF00FF.

    • OmitBackground bool? (необязательно)#

      Скрывает белый фон по умолчанию и позволяет захватывать скриншоты с прозрачностью. Не применимо к изображениям jpeg. По умолчанию false.

    • Path string? (необязательно)#

      Путь к файлу для сохранения изображения. Тип скриншота будет определен по расширению файла. Если Path является относительным путем, то он разрешается относительно текущего рабочего каталога. Если путь не указан, изображение не будет сохранено на диск.

    • Quality int? (необязательно)#

      Качество изображения, от 0 до 100. Не применимо к изображениям png.

    • Scale enum ScreenshotScale { Css, Device }? (необязательно)#

      При установке в "css", скриншот будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит сохранить скриншоты маленькими. Использование опции "device" создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высоким разрешением будут в два раза больше или даже больше.

      По умолчанию "device".

    • Style string? (необязательно) Добавлено в: v1.41#

      Текст стиля, который будет применен при создании скриншота. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь вам создать повторяемые скриншоты. Этот стиль проникает в Shadow DOM и применяется к внутренним фреймам.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Type enum ScreenshotType { Png, Jpeg }? (необязательно)#

      Укажите тип скриншота, по умолчанию png.

Возвращает

Детали

Этот метод захватывает скриншот страницы, обрезанный до размера и положения конкретного элемента, соответствующего локатору. Если элемент перекрыт другими элементами, он не будет фактически виден на скриншоте. Если элемент является прокручиваемым контейнером, на скриншоте будет виден только текущий прокрученный контент.

Этот метод ждет проверки действительности, затем прокручивает элемент в вид перед созданием скриншота. Если элемент отсоединен от DOM, метод выдает ошибку.

Возвращает буфер с захваченным скриншотом.


ScrollIntoViewIfNeededAsync

Добавлено в: v1.14 locator.ScrollIntoViewIfNeededAsync

Этот метод ждет проверки действительности, затем пытается прокрутить элемент в вид, если он не полностью виден, как определено ratio IntersectionObserver.

См. прокрутка для альтернативных способов прокрутки.

Использование

await Locator.ScrollIntoViewIfNeededAsync(options);

Аргументы

  • options LocatorScrollIntoViewIfNeededOptions? (необязательно)
    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() methods.

Возвращает


SelectOptionAsync

Добавлено в: v1.14 locator.SelectOptionAsync

Выбирает опцию или опции в <select>.

Использование

<select multiple>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
// одиночный выбор, соответствующий значению или метке
await element.SelectOptionAsync(new[] { "blue" });
// одиночный выбор, соответствующий метке
await element.SelectOptionAsync(new[] { new SelectOptionValue() { Label = "blue" } });
// множественный выбор для blue, red и второй опции
await element.SelectOptionAsync(new[] { "red", "green", "blue" });

Аргументы

  • values string | ElementHandle | IEnumerable | SelectOption | IEnumerable | IEnumerable?#
    • Value string? (необязательно)

      Соответствует option.value. Необязательно.

    • Label string? (необязательно)

      Соответствует option.label. Необязательно.

    • Index int? (необязательно)

      Соответствует индексу. Необязательно.

    Опции для выбора. Если у <select> есть атрибут multiple, все совпадающие опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Строковые значения соответствуют как значениям, так и меткам. Опция считается совпадающей, если все указанные свойства совпадают.
  • options LocatorSelectOptionOptions? (необязательно)
    • Force bool? (необязательно)#

      Нужно ли обходить проверки действительности. По умолчанию false.

    • NoWaitAfter bool? (необязательно)#

      Устарело

      Этот параметр не имеет эффекта.

      Этот параметр не имеет эффекта.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Этот метод ждет проверки действительности, ждет, пока все указанные опции будут присутствовать в элементе <select>, и выбирает эти опции.

Если целевой элемент не является элементом <select>, этот метод выдает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанную управляющую элемент, будет использоваться управляющий элемент.

Возвращает массив значений опций, которые были успешно выбраны.

Вызывает событие change и input, как только все предоставленные опции были выбраны.


SelectTextAsync

Добавлено в: v1.14 locator.SelectTextAsync

Этот метод ждет проверки действительности, затем фокусируется на элементе и выделяет весь его текстовый контент.

Если элемент находится внутри элемента <label>, который имеет связанную управляющую элемент, фокусируется и выделяет текст в управляющем элементе вместо этого.

Использование

await Locator.SelectTextAsync(options);

Аргументы

  • options LocatorSelectTextOptions? (необязательно)
    • Force bool? (необязательно)#

      Нужно ли обходить проверки действительности. По умолчанию false.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает


SetCheckedAsync

Добавлено в: v1.15 locator.SetCheckedAsync

Установить состояние флажка или элемента радио.

Использование

await page.GetByRole(AriaRole.Checkbox).SetCheckedAsync(true);

Аргументы

  • checkedState bool#

    Нужно ли установить или снять флажок.

  • options LocatorSetCheckedOptions? (необязательно)

    • Force bool? (необязательно)#

      Нужно ли обходить проверки действительности. По умолчанию false.

    • NoWaitAfter bool? (необязательно)#

      Устарело

      Этот параметр не имеет эффекта.

      Этот параметр не имеет эффекта.

    • Position Position? (необязательно)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (необязательно)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (необязательно)#

      При установке этот метод выполняет только проверки действительности и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает

Детали

Этот метод устанавливает или снимает флажок с элемента, выполняя следующие шаги:

  1. Убедитесь, что совпадающий элемент является флажком или радио-вводом. Если нет, этот метод выдает ошибку.
  2. Если элемент уже имеет правильное состояние, этот метод возвращает результат немедленно.
  3. Ждите проверки действительности на совпадающем элементе, если не установлен параметр Force. Если элемент отсоединен во время проверок, все действие повторяется.
  4. Прокрутите элемент в вид, если это необходимо.
  5. Используйте Page.Mouse для нажатия в центре элемента.
  6. Убедитесь, что элемент теперь установлен или снят. Если нет, этот метод выдает ошибку.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выдает TimeoutError. Установка нулевого тайм-аута отключает это.


SetInputFilesAsync

Добавлено в: v1.14 locator.SetInputFilesAsync

Загружает файл или несколько файлов в <input type=file>. Для входных данных с атрибутом [webkitdirectory] поддерживается только один путь к директории.

Использование

// Выбрать один файл
await page.GetByLabel("Upload file").SetInputFilesAsync("myfile.pdf");

// Выбрать несколько файлов
await page.GetByLabel("Upload files").SetInputFilesAsync(new[] { "file1.txt", "file12.txt" });

// Выбрать директорию
await page.GetByLabel("Upload directory").SetInputFilesAsync("mydir");

// Удалить все выбранные файлы
await page.GetByLabel("Upload file").SetInputFilesAsync(new[] {});

// Загрузить буфер из памяти
await page.GetByLabel("Upload file").SetInputFilesAsync(new FilePayload
{
Name = "file.txt",
MimeType = "text/plain",
Buffer = System.Text.Encoding.UTF8.GetBytes("this is a test"),
});

Аргументы

  • files string | IEnumerable<string> | FilePayload | IEnumerable<FilePayload>#
    • Name string

      Имя файла

    • MimeType string

      Тип файла

    • Buffer byte[]

      Содержимое файла

  • options LocatorSetInputFilesOptions? (опционально)
    • NoWaitAfter bool? (опционально)#

      Устарело

      Этот параметр не оказывает влияния.

      Этот параметр не оказывает влияния.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

Возвращает

Детали

Устанавливает значение входного файла на эти пути к файлам или файлы. Если некоторые из filePaths являются относительными путями, они разрешаются относительно текущей рабочей директории. Для пустого массива очищает выбранные файлы.

Этот метод ожидает, что Locator указывает на элемент ввода. Однако, если элемент находится внутри элемента <label>, который имеет связанную управляющую, он нацелен на управляющий элемент.


TapAsync

Добавлено в: v1.14 locator.TapAsync

Выполняет жест нажатия на элемент, соответствующий локатору. Примеры эмуляции других жестов путем ручной отправки событий касания см. на странице эмуляция устаревших событий касания.

Использование

await Locator.TapAsync(options);

Аргументы

  • options LocatorTapOptions? (опционально)
    • Force bool? (опционально)#

      Следует ли обходить проверки действительности. По умолчанию false.

    • Modifiers IEnumerable?<enum KeyboardModifier { Alt, Control, ControlOrMeta, Meta, Shift }> (опционально)#

      Модификаторные клавиши для нажатия. Обеспечивает, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается как "Control" на Windows и Linux и как "Meta" на macOS.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Этот параметр не оказывает влияния.

      Этот параметр не оказывает влияния.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout().

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурные modifiers будут нажаты независимо от trial, чтобы позволить тестирование элементов, которые видны только при нажатии этих клавиш.

Возвращает

Детали

Этот метод нажимает на элемент, выполняя следующие шаги:

  1. Ожидание проверок действительности на элементе, если не установлена опция Force.
  2. Прокрутка элемента в вид, если это необходимо.
  3. Использование Page.Touchscreen для нажатия в центр элемента или указанную Position.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Установка нулевого тайм-аута отключает это.

примечание

element.tap() требует, чтобы опция hasTouch контекста браузера была установлена в true.


TextContentAsync

Добавлено в: v1.14 locator.TextContentAsync

Возвращает node.textContent.

Проверка текста

Если вам нужно проверить текст на странице, предпочтите Expect(Locator).ToHaveTextAsync(), чтобы избежать нестабильности. Подробнее см. в руководстве по утверждениям.

Использование

await Locator.TextContentAsync(options);

Аргументы

  • options LocatorTextContentOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

Возвращает


UncheckAsync

Добавлено в: v1.14 locator.UncheckAsync

Убедитесь, что элемент флажка или радио не отмечен.

Использование

await page.GetByRole(AriaRole.Checkbox).UncheckAsync();

Аргументы

  • options LocatorUncheckOptions? (опционально)
    • Force bool? (опционально)#

      Следует ли обходить проверки действительности. По умолчанию false.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Этот параметр не оказывает влияния.

      Этот параметр не оказывает влияния.

    • Position Position? (опционально)#

      • X [float]

      • Y [float]

      Точка для использования относительно верхнего левого угла элемента. Если не указано, используется видимая точка элемента.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

    • Trial bool? (опционально)#

      Если установлено, этот метод выполняет только проверки действительности и пропускает действие. По умолчанию false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.

Возвращает

Детали

Этот метод снимает отметку с элемента, выполняя следующие шаги:

  1. Убедитесь, что элемент является флажком или радио-кнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже не отмечен, этот метод возвращается немедленно.
  2. Ожидание проверок действительности на элементе, если не установлена опция Force.
  3. Прокрутка элемента в вид, если это необходимо.
  4. Использование Page.Mouse для нажатия в центр элемента.
  5. Убедитесь, что элемент теперь не отмечен. Если нет, этот метод выбрасывает исключение.

Если элемент отсоединен от DOM в любой момент во время действия, этот метод выбрасывает исключение.

Когда все шаги в совокупности не завершены в течение указанного Timeout, этот метод выбрасывает TimeoutError. Установка нулевого тайм-аута отключает это.


WaitForAsync

Добавлено в: v1.16 locator.WaitForAsync

Возвращает, когда элемент, указанный локатором, удовлетворяет параметру State.

Если целевой элемент уже удовлетворяет условию, метод возвращается немедленно. В противном случае, ожидает до Timeout миллисекунд, пока условие не будет выполнено.

Использование

var orderSent = page.Locator("#order-sent");
orderSent.WaitForAsync();

Аргументы

  • options LocatorWaitForOptions? (опционально)
    • State enum WaitForSelectorState { Attached, Detached, Visible, Hidden }? (опционально)#

      По умолчанию 'visible'. Может быть:

      • 'attached' - ожидание, пока элемент будет присутствовать в DOM.
      • 'detached' - ожидание, пока элемент не будет присутствовать в DOM.
      • 'visible' - ожидание, пока элемент не будет иметь пустую ограничивающую рамку и не будет visibility:hidden. Обратите внимание, что элемент без какого-либо содержимого или с display:none имеет пустую ограничивающую рамку и не считается видимым.
      • 'hidden' - ожидание, пока элемент либо не будет отсоединен от DOM, либо не будет иметь пустую ограничивающую рамку или visibility:hidden. Это противоположно опции 'visible'.
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

Возвращает


Устарело

ElementHandleAsync

Добавлено в: v1.14 locator.ElementHandleAsync
Не рекомендуется

Всегда предпочитайте использование Locator и веб-утверждений вместо ElementHandle, так как последние по своей природе подвержены гонкам.

Разрешает данный локатор к первому соответствующему элементу DOM. Если соответствующих элементов нет, ожидает один. Если несколько элементов соответствуют локатору, выбрасывает исключение.

Использование

await Locator.ElementHandleAsync(options);

Аргументы

  • options LocatorElementHandleOptions? (опционально)
    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

Возвращает


ElementHandlesAsync

Добавлено в: v1.14 locator.ElementHandlesAsync
Не рекомендуется

Всегда предпочитайте использование Locator и веб-утверждений вместо ElementHandle, так как последние по своей природе подвержены гонкам.

Разрешает данный локатор ко всем соответствующим элементам DOM. Если соответствующих элементов нет, возвращает пустой список.

Использование

await Locator.ElementHandlesAsync();

Возвращает


TypeAsync

Добавлено в: v1.14 locator.TypeAsync
Устарело

В большинстве случаев следует использовать Locator.FillAsync() вместо этого. Вам нужно нажимать клавиши по одной, только если на странице есть специальная обработка клавиатуры - в этом случае используйте Locator.PressSequentiallyAsync().

Фокусируется на элементе, а затем отправляет событие keydown, keypress/input и keyup для каждого символа в тексте.

Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте Locator.PressAsync().

Использование

Аргументы

  • text string#

    Текст для ввода в фокусированный элемент.

  • options LocatorTypeOptions? (опционально)

    • Delay [float]? (опционально)#

      Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.

    • NoWaitAfter bool? (опционально)#

      Устарело

      Этот параметр не оказывает влияния.

      Этот параметр не оказывает влияния.

    • Timeout [float]? (опционально)#

      Максимальное время в миллисекундах. По умолчанию 30000 (30 секунд). Установите 0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.SetDefaultTimeout() или Page.SetDefaultTimeout() методы.

Возвращает