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

Locator

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

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


Методы

all

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

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

примечание

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

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

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

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

for (Locator li : page.getByRole("listitem").all())
li.click();

Возвращает


allInnerTexts

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

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

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

Если вам нужно проверить текст на странице, предпочтите assertThat(locator).hasText() с опцией setUseInnerText, чтобы избежать нестабильности. Подробнее см. в руководстве по проверкам.

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

String[] texts = page.getByRole(AriaRole.LINK).allInnerTexts();

Возвращает


allTextContents

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

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

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

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

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

String[] texts = page.getByRole(AriaRole.LINK).allTextContents();

Возвращает


and

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

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

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

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

Locator button = page.getByRole(AriaRole.BUTTON).and(page.getByTitle("Subscribe"));

Аргументы

  • locator Locator#

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

Возвращает


ariaSnapshot

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

Захватывает снимок aria для данного элемента. Подробнее о снимках aria и assertThat(locator).matchesAriaSnapshot() для соответствующей проверки.

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

page.getByRole(AriaRole.LINK).ariaSnapshot();

Аргументы

  • options Locator.AriaSnapshotOptions (опционально)
    • setTimeout double (опционально)#

      Максимальное время в миллисекундах. По умолчанию 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"

blur

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

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

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

Locator.blur();
Locator.blur(options);

Аргументы

  • options Locator.BlurOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


boundingBox

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

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

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

BoundingBox box = page.getByRole(AriaRole.BUTTON).boundingBox();
page.mouse().click(box.x + box.width / 2, box.y + box.height / 2);

Аргументы

  • options Locator.BoundingBoxOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает

  • null | BoundingBox#
    • x double

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

    • y double

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

    • width double

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

    • height double

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

Детали

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

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

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


check

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

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

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

page.getByRole(AriaRole.CHECKBOX).check();

Аргументы

  • options Locator.CheckOptions (опционально)
    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

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

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

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


clear

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

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

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

page.getByRole(AriaRole.TEXTBOX).clear();

Аргументы

  • options Locator.ClearOptions (опционально)
    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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


click

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

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

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

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

page.getByRole(AriaRole.BUTTON).click();

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

page.locator("canvas").click(new Locator.ClickOptions()
.setButton(MouseButton.RIGHT)
.setModifiers(Arrays.asList(KeyboardModifier.SHIFT))
.setPosition(23, 32));

Аргументы

  • options Locator.ClickOptions (опционально)
    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (опционально)#

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

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

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

    • setDelay double (опционально)#

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

    • setForce boolean (опционально)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

  1. Ожидайте проверки actionability на элементе, если не установлена опция setForce.
  2. Прокрутите элемент в вид, если это необходимо.
  3. Используйте Page.mouse() для клика в центр элемента или указанную setPosition.
  4. Ожидайте, пока инициированные навигации либо завершатся успешно, либо завершатся с ошибкой, если не установлена опция setNoWaitAfter.

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

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


contentFrame

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

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

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

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

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

Locator locator = page.locator("iframe[name=\"embedded\"]");
// ...
FrameLocator frameLocator = locator.contentFrame();
frameLocator.getByRole(AriaRole.BUTTON).click();

Возвращает


count

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

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

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

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

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

int count = page.getByRole(AriaRole.LISTITEM).count();

Возвращает


dblclick

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

Дважды кликнуть по элементу.

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

Locator.dblclick();
Locator.dblclick(options);

Аргументы

  • options Locator.DblclickOptions (опционально)
    • setButton enum MouseButton { LEFT, RIGHT, MIDDLE } (опционально)#

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

    • setDelay double (опционально)#

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

    • setForce boolean (опционально)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

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

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

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

примечание

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


dispatchEvent

Added in: v1.14 locator.dispatchEvent

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

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

locator.dispatchEvent("click");

Аргументы

  • type String#

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

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

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

  • options Locator.DispatchEventOptions (опционально)

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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

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

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

JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
Map<String, Object> arg = new HashMap<>();
arg.put("dataTransfer", dataTransfer);
locator.dispatchEvent("dragstart", arg);

dragTo

Added in: v1.18 locator.dragTo

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

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

Locator source = page.locator("#source");
Locator target = page.locator("#target");

source.dragTo(target);
// или укажите точные позиции относительно верхнего левого угла элементов:
source.dragTo(target, new Locator.DragToOptions()
.setSourcePosition(34, 7).setTargetPosition(10, 20));

Аргументы

  • target Locator#

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

  • options Locator.DragToOptions (опционально)

    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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


evaluate

Added in: v1.14 locator.evaluate

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

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

Аргументы

  • expression String#

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

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

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

  • options Locator.EvaluateOptions (опционально)

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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

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


evaluateAll

Added in: v1.14 locator.evaluateAll

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

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

Locator locator = page.locator("div");
boolean moreThanTen = (boolean) locator.evaluateAll("(divs, min) => divs.length > min", 10);

Аргументы

  • expression String#

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

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

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

Возвращает

Детали

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

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

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


evaluateHandle

Added in: v1.14 locator.evaluateHandle

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

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

Locator.evaluateHandle(expression);
Locator.evaluateHandle(expression, arg, options);

Аргументы

  • expression String#

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

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

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

  • options Locator.EvaluateHandleOptions (опционально)

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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

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

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

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


fill

Added in: v1.14 locator.fill

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

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

page.getByRole(AriaRole.TEXTBOX).fill("example value");

Аргументы

  • value String#

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

  • options Locator.FillOptions (опционально)

    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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

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


filter

Added in: v1.22 locator.filter

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

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

Locator rowLocator = page.locator("tr");
// ...
rowLocator
.filter(new Locator.FilterOptions().setHasText("text in column 1"))
.filter(new Locator.FilterOptions().setHas(
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("column 2 button"))
))
.screenshot();

Аргументы

  • options Locator.FilterOptions (опционально)
    • setHas Locator (опционально)#

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

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

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

    • setHasNot Locator (опционально) Added in: v1.33#

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

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

    • setHasNotText String | Pattern (опционально) Added in: v1.33#

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

    • setHasText String | Pattern (опционально)#

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

    • setVisible boolean (опционально) Added in: v1.51#

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

Возвращает


first

Added in: v1.14 locator.first

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

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

Locator.first();

Возвращает


focus

Added in: v1.14 locator.focus

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

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

Locator.focus();
Locator.focus(options);

Аргументы

  • options Locator.FocusOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


frameLocator

Added in: v1.17 locator.frameLocator

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

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

Locator locator = page.frameLocator("iframe").getByText("Submit");
locator.click();

Аргументы

  • selector String#

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

Возвращает


getAttribute

Added in: v1.14 locator.getAttribute

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

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

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

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

Locator.getAttribute(name);
Locator.getAttribute(name, options);

Аргументы

  • name String#

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

  • options Locator.GetAttributeOptions (опционально)

    • setTimeout double (опционально)#

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

Возвращает


getByAltText

Added in: v1.27 locator.getByAltText

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

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

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

<img alt='Playwright logo'>
page.getByAltText("Playwright logo").click();

Аргументы

  • text String | Pattern#

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

  • options Locator.GetByAltTextOptions (опционально)

    • setExact boolean (опционально)#

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

Возвращает


getByLabel

Added in: 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">
page.getByLabel("Username").fill("john");
page.getByLabel("Password").fill("secret");

Аргументы

  • text String | Pattern#

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

  • options Locator.GetByLabelOptions (опционально)

    • setExact boolean (опционально)#

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

Возвращает


getByPlaceholder

Added in: v1.27 locator.getByPlaceholder

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

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

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

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

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

page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");

Аргументы

  • text String | Pattern#

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

  • options Locator.GetByPlaceholderOptions (опционально)

    • setExact boolean (опционально)#

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

Возвращает


getByRole

Added in: v1.27 locator.getByRole

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

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

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

<h3>Sign up</h3>
<label>
<input type="checkbox" /> Subscribe
</label>
<br/>
<button>Submit</button>

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

assertThat(page
.getByRole(AriaRole.HEADING,
new Page.GetByRoleOptions().setName("Sign up")))
.isVisible();

page.getByRole(AriaRole.CHECKBOX,
new Page.GetByRoleOptions().setName("Subscribe"))
.check();

page.getByRole(AriaRole.BUTTON,
new Page.GetByRoleOptions().setName(
Pattern.compile("submit", Pattern.CASE_INSENSITIVE)))
.click();

Аргументы

  • 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 Locator.GetByRoleOptions (опционально)

    • setChecked boolean (опционально)#

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

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

    • setDisabled boolean (опционально)#

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

      примечание

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

    • setExact boolean (опционально) Added in: v1.28#

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

    • setExpanded boolean (опционально)#

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

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

    • setIncludeHidden boolean (опционально)#

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

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

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

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

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

    • setName String | Pattern (опционально)#

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

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

    • setPressed boolean (опционально)#

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

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

    • setSelected boolean (опционально)#

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

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

Возвращает

Детали

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

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


getByTestId

Added in: v1.27 locator.getByTestId

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

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

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

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

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

page.getByTestId("directions").click();

Аргументы

  • testId String | Pattern#

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

Возвращает

Детали

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


getByText

Added in: 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 Page.GetByTextOptions().setExact(true));

// Совпадает с обоими <div>
page.getByText(Pattern.compile("Hello"));

// Совпадает со вторым <div>
page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE));

Аргументы

  • text String | Pattern#

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

  • options Locator.GetByTextOptions (опционально)

    • setExact boolean (опционально)#

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

Возвращает

Детали

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

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


getByTitle

Added in: v1.27 locator.getByTitle

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

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

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

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

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

assertThat(page.getByTitle("Issues count")).hasText("25 issues");

Аргументы

  • text String | Pattern#

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

  • options Locator.GetByTitleOptions (опционально)

    • setExact boolean (опционально)#

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

Возвращает


highlight

Added in: v1.20 locator.highlight

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

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

Locator.highlight();

Возвращает


hover

Added in: v1.14 locator.hover

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

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

page.getByRole(AriaRole.LINK).hover();

Аргументы

  • options Locator.HoverOptions (опционально)
    • setForce boolean (опционально)#

      Обойти ли проверки actionability. По умолчанию false.

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#

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

    • setNoWaitAfter boolean (опционально) Added in: v1.28#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

  1. Ожидание проверок actionability на элементе, если опция setForce не установлена.
  2. Прокрутка элемента в вид, если это необходимо.
  3. Использование Page.mouse() для наведения курсора на центр элемента или указанную setPosition.

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

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


innerHTML

Added in: v1.14 locator.innerHTML

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

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

Locator.innerHTML();
Locator.innerHTML(options);

Аргументы

  • options Locator.InnerHTMLOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


innerText

Added in: v1.14 locator.innerText

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

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

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

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

Locator.innerText();
Locator.innerText(options);

Аргументы

  • options Locator.InnerTextOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


inputValue

Added in: v1.14 locator.inputValue

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

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

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

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

String value = page.getByRole(AriaRole.TEXTBOX).inputValue();

Аргументы

  • options Locator.InputValueOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает

Детали

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


isChecked

Added in: v1.14 locator.isChecked

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

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

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

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

boolean checked = page.getByRole(AriaRole.CHECKBOX).isChecked();

Аргументы

  • options Locator.IsCheckedOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


isDisabled

Added in: v1.14 locator.isDisabled

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

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

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

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

boolean disabled = page.getByRole(AriaRole.BUTTON).isDisabled();

Аргументы

  • options Locator.IsDisabledOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


isEditable

Added in: v1.14 locator.isEditable

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

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

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

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

boolean editable = page.getByRole(AriaRole.TEXTBOX).isEditable();

Аргументы

  • options Locator.IsEditableOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


isEnabled

Added in: v1.14 locator.isEnabled

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

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

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

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

boolean enabled = page.getByRole(AriaRole.BUTTON).isEnabled();

Аргументы

  • options Locator.IsEnabledOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


isHidden

Added in: v1.14 locator.isHidden

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

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

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

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

boolean hidden = page.getByRole(AriaRole.BUTTON).isHidden();

Аргументы

  • options Locator.IsHiddenOptions (опционально)
    • setTimeout double (опционально)#

      Устарело

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

Возвращает


isVisible

Added in: v1.14 locator.isVisible

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

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

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

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

boolean visible = page.getByRole(AriaRole.BUTTON).isVisible();

Аргументы

  • options Locator.IsVisibleOptions (опционально)
    • setTimeout double (опционально)#

      Устарело

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

Возвращает


last

Added in: v1.14 locator.last

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

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

Locator banana = page.getByRole(AriaRole.LISTITEM).last();

Возвращает


locator

Added in: v1.14 locator.locator

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

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

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

Locator.locator(selectorOrLocator);
Locator.locator(selectorOrLocator, options);

Аргументы

  • selectorOrLocator String | Locator#

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

  • options Locator.LocatorOptions (опционально)

    • setHas Locator (опционально)#

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

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

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

    • setHasNot Locator (опционально) Added in: v1.33#

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

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

    • setHasNotText String | Pattern (опционально) Added in: v1.33#

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

    • setHasText String | Pattern (опционально)#

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

Возвращает


nth

Added in: v1.14 locator.nth

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

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

Locator banana = page.getByRole(AriaRole.LISTITEM).nth(2);

Аргументы

Возвращает


or

Added in: v1.33 locator.or

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

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

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

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

примечание

Если на экране появляются и кнопка "New email", и диалог безопасности, локатор "or" будет соответствовать обоим из них, возможно, вызывая ошибку "strict mode violation". В этом случае вы можете использовать Locator.first(), чтобы соответствовать только одному из них.

Locator newEmail = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("New"));
Locator dialog = page.getByText("Confirm security settings");
assertThat(newEmail.or(dialog).first()).isVisible();
if (dialog.isVisible())
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Dismiss")).click();
newEmail.click();

Аргументы

  • locator Locator#

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

Возвращает


page

Added in: v1.19 locator.page

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

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

Locator.page();

Возвращает


press

Added in: v1.14 locator.press

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

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

page.getByRole(AriaRole.TEXTBOX).press("Backspace");

Аргументы

  • key String#

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

  • options Locator.PressOptions (опционально)

    • setDelay double (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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


pressSequentially

Added in: v1.38 locator.pressSequentially
подсказка

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

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

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

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

locator.pressSequentially("Hello"); // Печатает мгновенно
locator.pressSequentially("World", new Locator.pressSequentiallyOptions().setDelay(100)); // Печатает медленнее, как пользователь

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

Locator locator = page.getByLabel("Password");
locator.pressSequentially("my password");
locator.press("Enter");

Аргументы

  • text String#

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

  • options Locator.PressSequentiallyOptions (опционально)

    • setDelay double (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает


screenshot

Added in: v1.14 locator.screenshot

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

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

page.getByRole(AriaRole.LINK).screenshot();

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

page.getByRole(AriaRole.LINK).screenshot(new Locator.ScreenshotOptions()
.setAnimations(ScreenshotAnimations.DISABLED)
.setPath(Paths.get("example.png")));

Аргументы

  • options Locator.ScreenshotOptions (опционально)
    • setAnimations enum ScreenshotAnimations { DISABLED, ALLOW } (опционально)#

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

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

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

    • setCaret enum ScreenshotCaret { HIDE, INITIAL } (опционально)#

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

    • setMask List<Locator> (опционально)#

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

    • setMaskColor String (опционально) Added in: v1.35#

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

    • setOmitBackground boolean (опционально)#

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

    • setPath Path (опционально)#

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

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

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

    • setScale enum ScreenshotScale { CSS, DEVICE } (опционально)#

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

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

    • setStyle String (опционально) Added in: v1.41#

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

    • setTimeout double (опционально)#

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

    • setType enum ScreenshotType { PNG, JPEG } (опционально)#

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

Возвращает

Детали

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

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

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


scrollIntoViewIfNeeded

Added in: v1.14 locator.scrollIntoViewIfNeeded

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

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

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

Locator.scrollIntoViewIfNeeded();
Locator.scrollIntoViewIfNeeded(options);

Аргументы

  • options Locator.ScrollIntoViewIfNeededOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


selectOption

Added in: v1.14 locator.selectOption

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

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

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

Аргументы

  • values null | String | ElementHandle | String[] | SelectOption | ElementHandle[] | SelectOption[]#
    • setValue String (опционально)

      Соответствует option.value. Опционально.

    • setLabel String (опционально)

      Соответствует option.label. Опционально.

    • setIndex int (опционально)

      Соответствует индексу. Опционально.

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

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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

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

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


selectText

Added in: v1.14 locator.selectText

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

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

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

Locator.selectText();
Locator.selectText(options);

Аргументы

  • options Locator.SelectTextOptions (опционально)
    • setForce boolean (опционально)#

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

    • setTimeout double (опционально)#

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

Возвращает


setChecked

Added in: v1.15 locator.setChecked

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

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

page.getByRole(AriaRole.CHECKBOX).setChecked(true);

Аргументы

  • checked boolean#

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

  • options Locator.SetCheckedOptions (опционально)

    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

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

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


setInputFiles

Added in: v1.14 locator.setInputFiles

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

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

// Выбор одного файла
page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf"));

// Выбор нескольких файлов
page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")});

// Выбор каталога
page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir"));

// Удаление всех выбранных файлов
page.getByLabel("Upload file").setInputFiles(new Path[0]);

// Загрузка буфера из памяти
page.getByLabel("Upload file").setInputFiles(new FilePayload(
"file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));

Аргументы

  • files Path | Path[] | FilePayload | FilePayload[]#
    • setName String

      Имя файла

    • setMimeType String

      Тип файла

    • setBuffer byte[]

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

  • options Locator.SetInputFilesOptions (опционально)
    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает

Детали

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

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


tap

Added in: v1.14 locator.tap

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

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

Locator.tap();
Locator.tap(options);

Аргументы

  • options Locator.TapOptions (опционально)
    • setForce boolean (опционально)#

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

    • setModifiers List<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

  1. Ожидание проверок actionability на элементе, если не установлен параметр setForce.
  2. Прокрутка элемента в вид, если это необходимо.
  3. Использование Page.touchscreen() для нажатия в центр элемента или указанную setPosition.

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

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

примечание

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


textContent

Added in: v1.14 locator.textContent

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

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

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

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

Locator.textContent();
Locator.textContent(options);

Аргументы

  • options Locator.TextContentOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


uncheck

Added in: v1.14 locator.uncheck

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

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

page.getByRole(AriaRole.CHECKBOX).uncheck();

Аргументы

  • options Locator.UncheckOptions (опционально)
    • setForce boolean (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

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

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

    • setTimeout double (опционально)#

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

    • setTrial boolean (опционально)#

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

Возвращает

Детали

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

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

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

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


waitFor

Added in: v1.16 locator.waitFor

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

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

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

Locator orderSent = page.locator("#order-sent");
orderSent.waitFor();

Аргументы

  • options Locator.WaitForOptions (опционально)
    • setState enum WaitForSelectorState { ATTACHED, DETACHED, VISIBLE, HIDDEN } (опционально)#

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

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

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

Возвращает


Устарело

elementHandle

Added in: v1.14 locator.elementHandle
Не рекомендуется

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

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

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

Locator.elementHandle();
Locator.elementHandle(options);

Аргументы

  • options Locator.ElementHandleOptions (опционально)
    • setTimeout double (опционально)#

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

Возвращает


elementHandles

Added in: v1.14 locator.elementHandles
Не рекомендуется

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

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

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

Locator.elementHandles();

Возвращает


type

Added in: v1.14 locator.type
Устарело

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

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

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

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

Аргументы

  • text String#

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

  • options Locator.TypeOptions (опционально)

    • setDelay double (опционально)#

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

    • setNoWaitAfter boolean (опционально)#

      Устарело

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

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

    • setTimeout double (опционально)#

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

Возвращает