Page
Page предоставляет методы для взаимодействия с одной вкладкой в Browser или background page расширения в Chromium. Один экземпляр Browser может иметь несколько экземпляров Page.
Этот пример создает страницу, переходит на URL и затем сохраняет скриншот:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch();
BrowserContext context = browser.newContext();
Page page = context.newPage();
page.navigate("https://example.com");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("screenshot.png")));
browser.close();
}
}
}
Класс Page генерирует различные события (описанные ниже), которые могут быть обработаны с использованием любых методов нативного EventEmitter в Node, таких как on, once или removeListener.
Этот пример выводит сообщение для одного события загрузки страницы load:
page.onLoad(p -> System.out.println("Page loaded!"));
Чтобы отписаться от событий, используйте метод removeListener:
Consumer<Request> logRequest = interceptedRequest -> {
System.out.println("A request was made: " + interceptedRequest.url());
};
page.onRequest(logRequest);
// Позже...
page.offRequest(logRequest);
Методы
addInitScript
Добавлено до v1.9Добавляет скрипт, который будет выполнен в одном из следующих случаев:
- Каждый раз, когда страница переходит на новый URL.
- Каждый раз, когда дочерний фрейм присоединяется или переходит на новый URL. В этом случае скрипт выполняется в контексте вновь присоединенного фрейма.
Скрипт выполняется после создания документа, но до выполнения любых его скриптов. Это полезно для изменения среды JavaScript, например, для установки начального значения Math.random.
Использование
Пример переопределения Math.random перед загрузкой страницы:
// preload.js
Math.random = () => 42;
// В вашем скрипте playwright, предполагая, что файл preload.js находится в той же директории
page.addInitScript(Paths.get("./preload.js"));
Порядок выполнения нескольких скриптов, установленных через BrowserContext.addInitScript() и Page.addInitScript(), не определен.
Аргументы
Возвращает
addLocatorHandler
Добавлено в: v1.42При тестировании веб-страницы иногда появляются неожиданные наложения, такие как диалог "Зарегистрироваться", которые блокируют действия, которые вы хотите автоматизировать, например, нажатие кнопки. Эти наложения не всегда появляются одинаково или в одно и то же время, что делает их сложными для обработки в автоматизированных тестах.
Этот метод позволяет вам настроить специальную функцию, называемую обработчиком, которая активируется, когда обнаруживает, что наложение видно. Задача обработчика - удалить наложение, позволяя вашему тесту продолжаться так, как будто наложения не было.
Вещи, которые нужно учитывать:
- Когда наложение показывается предсказуемо, мы рекомендуем явно ожидать его в вашем тесте и закрывать его как часть вашего обычного тестового потока, вместо использования Page.addLocatorHandler().
- Playwright проверяет наличие наложения каждый раз перед выполнением или повторной попыткой действия, требующего проверки возможности действия, или перед выполнением проверки утверждения с автоматическим ожиданием. Когда наложение видно, Playwright сначала вызывает обработчик, а затем продолжает с действием/утверждением. Обратите внимание, что обработчик вызывается только тогда, когда вы выполняете действие/утверждение - если наложение становится видимым, но вы не выполняете никаких действий, обработчик не будет вызван.
- После выполнения обработчика Playwright убедится, что наложение, вызвавшее обработчик, больше не видно. Вы можете отказаться от этого поведения с помощью setNoWaitAfter.
- Время выполнения обработчика учитывается в тайм-ауте действия/утверждения, которое вызвало обработчик. Если ваш обработчик занимает слишком много времени, это может вызвать тайм-ауты.
- Вы можете зарегистрировать несколько обработчиков. Однако в любой момент времени будет выполняться только один обработчик. Убедитесь, что действия внутри обработчика не зависят от другого обработчика.
Выполнение обработчика изменит состояние вашей страницы в середине теста. Например, это изменит текущий фокусированный элемент и переместит мышь. Убедитесь, что действия, выполняемые после обработчика, являются автономными и не зависят от того, что фокус и состояние мыши не изменились.
Например, рассмотрим тест, который вызывает Locator.focus() с последующим Keyboard.press(). Если ваш обработчик нажимает кнопку между этими двумя действиями, фокусированный элемент, скорее всего, будет неправильным, и нажатие клавиши произойдет на неожиданном элементе. Используйте Locator.press() вместо этого, чтобы избежать этой проблемы.
Другой пример - серия действий с мышью, где Mouse.move() следует за Mouse.down(). Опять же, когда обработчик выполняется между этими двумя действиями, положение мыши будет неправильным во время нажатия мыши. Предпочитайте автономные действия, такие как Locator.click(), которые не зависят от того, что состояние не изменилось обработчиком.
Использование
Пример, который закрывает диалог "Подписаться на рассылку", когда он появляется:
// Настройте обработчик.
page.addLocatorHandler(page.getByText("Sign up to the newsletter"), () -> {
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("No thanks")).click();
});
// Пишите тест как обычно.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();
Пример, который пропускает страницу "Подтвердите свои данные безопасности", когда она показывается:
// Настройте обработчик.
page.addLocatorHandler(page.getByText("Confirm your security details"), () -> {
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Remind me later")).click();
});
// Пишите тест как обычно.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();
Пример с пользовательским обратным вызовом на каждую проверку возможности действия. Он использует локатор <body>, который всегда виден, поэтому обработчик вызывается перед каждой проверкой возможности действия. Важно указать setNoWaitAfter, потому что обработчик не скрывает элемент <body>.
// Настройте обработчик.
page.addLocatorHandler(page.locator("body"), () -> {
page.evaluate("window.removeObstructionsForTestIfNeeded()");
}, new Page.AddLocatorHandlerOptions().setNoWaitAfter(true));
// Пишите тест как обычно.
page.navigate("https://example.com");
page.getByRole("button", Page.GetByRoleOptions().setName("Start here")).click();
Обработчик принимает оригинальный локатор в качестве аргумента. Вы также можете автоматически удалить обработчик после определенного количества вызовов, установив setTimes:
page.addLocatorHandler(page.getByLabel("Close"), locator -> {
locator.click();
}, new Page.AddLocatorHandlerOptions().setTimes(1));
Аргументы
-
Локатор, который вызывает обработчик.
-
Функция, которая должна быть выполнена, как только локатор появится. Эта функция должна избавиться от элемента, который блокирует действия, такие как клик.
-
optionsPage.AddLocatorHandlerOptions(опционально)-
setNoWaitAfterboolean (опционально) Добавлено в: v1.44#По умолчанию, после вызова обработчика Playwright будет ждать, пока наложение не станет скрытым, и только затем продолжит с действием/утверждением, которое вызвало обработчик. Эта опция позволяет отказаться от этого поведения, так что наложение может оставаться видимым после выполнения обработчика.
-
setTimesint (опционально) Добавлено в: v1.44#Указывает максимальное количество раз, которое этот обработчик должен быть вызван. По умолчанию неограниченно.
-
Возвращает
addScriptTag
Добавлено до v1.9Добавляет тег <script> на страницу с желаемым URL или содержимым. Возвращает добавленный тег, когда срабатывает событие onload скрипта или когда содержимое скрипта было внедрено в фрейм.
Использование
Page.addScriptTag();
Page.addScriptTag(options);
Аргументы
optionsPage.AddScriptTagOptions(опционально)-
setContentString (опционально)#Сырой JavaScript-контент, который будет внедрен в фрейм.
-
Путь к JavaScript-файлу, который будет внедрен в фрейм. Если
pathявляется относительным путем, то он разрешается относительно текущей рабочей директории. -
Тип скрипта. Используйте 'module', чтобы загрузить JavaScript ES6 модуль. Подробнее см. script.
-
URL скрипта, который будет добавлен.
-
Возвращает
addStyleTag
Добавлено до v1.9Добавляет тег <link rel="stylesheet"> на страницу с желаемым URL или тег <style type="text/css"> с содержимым. Возвращает добавленный тег, когда срабатывает событие onload стиля или когда CSS-контент был внедрен в фрейм.
Использование
Page.addStyleTag();
Page.addStyleTag(options);
Аргументы
optionsPage.AddStyleTagOptions(опционально)
Возвращает
bringToFront
Добавлено до v1.9Выводит страницу на передний план (активирует вкладку).
Использование
Page.bringToFront();
Возвращает
close
Добавлено до v1.9Если setRunBeforeUnload равен false, не выполняет обработчики выгрузки и ждет, пока страница не будет закрыта. Если setRunBeforeUnload равен true, метод выполнит обработчики выгрузки, но не будет ждать закрытия страницы.
По умолчанию, page.close() не выполняет обработчики beforeunload.
если setRunBeforeUnload передан как true, может быть вызван диалог beforeunload, который должен быть обработан вручную через событие Page.onDialog(handler).
Использование
Page.close();
Page.close(options);
Аргументы
optionsPage.CloseOptions(опционально)-
setReasonString (опционально) Добавлено в: v1.40#Причина, которая будет сообщена операциям, прерванным закрытием страницы.
-
setRunBeforeUnloadboolean (опционально)#По умолчанию
false. Выполнять ли обработчики страницы before unload.
-
Возвращает
content
Добавлено до v1.9Получает полное содержимое HTML страницы, включая doctype.
Использование
Page.content();
Возвращает
context
Добавлено до v1.9Получает контекст браузера, к которому принадлежит страница.
Использование
Page.context();
Возвращает
dragAndDrop
Добавлено в: v1.13Этот метод перетаскивает исходный элемент на целевой элемент. Сначала он перемещается к исходному элементу, выполняет mousedown, затем перемещается к целевому элементу и выполняет mouseup.
Использование
page.dragAndDrop("#source", "#target");
// или укажите точные позиции относительно верхнего левого угла элементов:
page.dragAndDrop("#source", "#target", new Page.DragAndDropOptions()
.setSourcePosition(34, 7).setTargetPosition(10, 20));
Аргументы
-
Селектор для поиска элемента, который нужно перетащить. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
Селектор для поиска элемента, на который нужно сбросить. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsPage.DragAndDropOptions(опционально)-
setForceboolean (опционально)#Нужно ли обходить проверки возможности действия. По умолчанию
false. -
setNoWaitAfterboolean (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
setSourcePositionSourcePosition (опционально) Добавлено в: v1.14#Кликает на исходный элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (опционально) Добавлено в: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
setTargetPositionTargetPosition (опционально) Добавлено в: v1.14#Сбрасывает на целевой элемент в этой точке относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTrialboolean (опционально)#Если установлено, этот метод выполняет только проверки возможности действия и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его.
-
Возвращает
emulateMedia
Добавлено до v1.9Этот метод изменяет CSS media type через аргумент media, и/или медиа-функцию 'prefers-colors-scheme', используя аргумент colorScheme.
Использование
page.evaluate("() => matchMedia('screen').matches");
// → true
page.evaluate("() => matchMedia('print').matches");
// → false
page.emulateMedia(new Page.EmulateMediaOptions().setMedia(Media.PRINT));
page.evaluate("() => matchMedia('screen').matches");
// → false
page.evaluate("() => matchMedia('print').matches");
// → true
page.emulateMedia(new Page.EmulateMediaOptions());
page.evaluate("() => matchMedia('screen').matches");
// → true
page.evaluate("() => matchMedia('print').matches");
// → false
page.emulateMedia(new Page.EmulateMediaOptions().setColorScheme(ColorScheme.DARK));
page.evaluate("() => matchMedia('(prefers-color-scheme: dark)').matches");
// → true
page.evaluate("() => matchMedia('(prefers-color-scheme: light)').matches");
// → false
Аргументы
optionsPage.EmulateMediaOptions(опционально)-
setColorSchemenull |enum ColorScheme { LIGHT, DARK, NO_PREFERENCE }(опционально) Добавлено в: v1.9#Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения:
'light'и'dark'. Передачаnullотключает эмуляцию цветовой схемы.'no-preference'устарело. -
setContrastnull |enum Contrast { NO_PREFERENCE, MORE }(опционально) Добавлено в: v1.51#Эмулирует медиа-функцию
'prefers-contrast', поддерживаемые значения:'no-preference','more'. Передачаnullотключает эмуляцию контраста. -
setForcedColorsnull |enum ForcedColors { ACTIVE, NONE }(опционально) Добавлено в: v1.15#Эмулирует медиа-функцию
'forced-colors', поддерживаемые значения:'active'и'none'. Передачаnullотключает эмуляцию принудительных цветов. -
setMedianull |enum Media { SCREEN, PRINT }(опционально) Добавлено в: v1.9#Изменяет тип CSS media страницы. Единственные допустимые значения:
'screen','print'иnull. Передачаnullотключает эмуляцию CSS media. -
setReducedMotionnull |enum ReducedMotion { REDUCE, NO_PREFERENCE }(опционально) Добавлено в: v1.12#Эмулирует медиа-функцию
'prefers-reduced-motion', поддерживаемые значения:'reduce','no-preference'. Передачаnullотключает эмуляцию уменьшенного движения.
-
Возвращает
evaluate
Добавлено до v1.9Возвращает значение вызова expression.
Если функция, переданная в Page.evaluate(), возвращает Promise, то Page.evaluate() будет ждать разрешения промиса и вернет его значение.
Если функция, переданная в Page.evaluate(), возвращает значение, не являющееся Serializable, то Page.evaluate() разрешается в undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуются через JSON: -0, NaN, Infinity, -Infinity.
Использование
Передача аргумента в expression:
Object result = page.evaluate("([x, y]) => {\n" +
" return Promise.resolve(x * y);\n" +
"}", Arrays.asList(7, 8));
System.out.println(result); // выводит "56"
Также можно передать строку вместо функции:
System.out.println(page.evaluate("1 + 2")); // выводит "3"
Экземпляры ElementHandle могут быть переданы в качестве аргумента в Page.evaluate():
ElementHandle bodyHandle = page.evaluate("document.body");
String html = (String) page.evaluate("([body, suffix]) => body.innerHTML + suffix", Arrays.asList(bodyHandle, "hello"));
bodyHandle.dispose();
Аргументы
-
JavaScript-выражение, которое будет выполнено в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (опционально)#Необязательный аргумент для передачи в expression.
Возвращает
evaluateHandle
Добавлено до v1.9Возвращает значение вызова expression в виде JSHandle.
Единственное отличие между Page.evaluate() и Page.evaluateHandle() заключается в том, что Page.evaluateHandle() возвращает JSHandle.
Если функция, переданная в Page.evaluateHandle(), возвращает Promise, то Page.evaluateHandle() будет ждать разрешения промиса и вернет его значение.
Использование
// Обработчик для объекта window.
JSHandle aWindowHandle = page.evaluateHandle("() => Promise.resolve(window)");
Также можно передать строку вместо функции:
JSHandle aHandle = page.evaluateHandle("document"); // Обработчик для "document".
Экземпляры JSHandle могут быть переданы в качестве аргумента в Page.evaluateHandle():
JSHandle aHandle = page.evaluateHandle("() => document.body");
JSHandle resultHandle = page.evaluateHandle("([body, suffix]) => body.innerHTML + suffix", Arrays.asList(aHandle, "hello"));
System.out.println(resultHandle.jsonValue());
resultHandle.dispose();
Аргументы
-
JavaScript-выражение, которое будет выполнено в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (опционально)#Необязательный аргумент для передачи в expression.
Возвращает
exposeBinding
Added before v1.9Метод добавляет функцию с именем name в объект window каждого фрейма на этой странице. При вызове функция выполняет callback и возвращает Promise, который разрешается в возвращаемое значение callback. Если callback возвращает Promise, он будет ожидаться.
Первый аргумент функции callback содержит информацию о вызывающем: { browserContext: BrowserContext, page: Page, frame: Frame }.
Смотрите BrowserContext.exposeBinding() для версии, охватывающей весь контекст.
Функции, установленные через Page.exposeBinding(), сохраняются при навигации.
Использование
Пример предоставления URL страницы всем фреймам на странице:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext();
Page page = context.newPage();
page.exposeBinding("pageURL", (source, args) -> source.page().url());
page.setContent("<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.pageURL();\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>");
page.click("button");
}
}
}
Аргументы
-
Имя функции в объекте window.
-
callbackBindingCallback#Функция обратного вызова, которая будет вызвана в контексте Playwright.
-
optionsPage.ExposeBindingOptions(optional)
Возвращает
exposeFunction
Added before v1.9Метод добавляет функцию с именем name в объект window каждого фрейма на странице. При вызове функция выполняет callback и возвращает Promise, который разрешается в возвращаемое значение callback.
Если callback возвращает Promise, он будет ожидаться.
Смотрите BrowserContext.exposeFunction() для версии, охватывающей весь контекст.
Функции, установленные через Page.exposeFunction(), сохраняются при навигации.
Использование
Пример добавления функции sha256 на страницу:
import com.microsoft.playwright.*;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch(new BrowserType.LaunchOptions().setHeadless(false));
Page page = browser.newPage();
page.exposeFunction("sha256", args -> {
try {
String text = (String) args[0];
MessageDigest crypto = MessageDigest.getInstance("SHA-256");
byte[] token = crypto.digest(text.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(token);
} catch (NoSuchAlgorithmException e) {
return null;
}
});
page.setContent(
"<script>\n" +
" async function onClick() {\n" +
" document.querySelector('div').textContent = await window.sha256('PLAYWRIGHT');\n" +
" }\n" +
"</script>\n" +
"<button onclick=\"onClick()\">Click me</button>\n" +
"<div></div>"
);
page.click("button");
}
}
}
Аргументы
-
Имя функции в объекте window.
-
callbackFunctionCallback#Функция обратного вызова, которая будет вызвана в контексте Playwright.
Возвращает
frame
Added before v1.9Возвращает фрейм, соответствующий указанным критериям. Должно быть указано либо name, либо url.
Использование
Frame frame = page.frame("frame-name");
Frame frame = page.frameByUrl(Pattern.compile(".*domain.*"));
Аргументы
Возвращает
frameByUrl
Added in: v1.9Возвращает фрейм с соответствующим URL.
Использование
Page.frameByUrl(url);
Аргументы
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, регулярное выражение или предикат, получающий
urlфрейма как объект [URL].
Возвращает
frameLocator
Added in: v1.17При работе с iframes вы можете создать локатор фрейма, который войдет в iframe и позволит выбирать элементы в этом iframe.
Использование
Следующий фрагмент кода находит элемент с текстом "Submit" в iframe с id my-frame, например <iframe id="my-frame">:
Locator locator = page.frameLocator("#my-iframe").getByText("Submit");
locator.click();
Аргументы
Возвращает
frames
Added before v1.9Массив всех фреймов, прикрепленных к странице.
Использование
Page.frames();
Возвращает
getByAltText
Added in: v1.27Позволяет находить элементы по их alt тексту.
Использование
Например, этот метод найдет изображение по alt тексту "Playwright logo":
<img alt='Playwright logo'>
page.getByAltText("Playwright logo").click();
Аргументы
-
Текст для поиска элемента.
-
optionsPage.GetByAltTextOptions(optional)
Возвращает
getByLabel
Added in: v1.27Позволяет находить элементы ввода по тексту связанного элемента <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");
Аргументы
-
Текст для поиска элемента.
-
optionsPage.GetByLabelOptions(optional)
Возвращает
getByPlaceholder
Added in: v1.27Позволяет находить элементы ввода по тексту-заполнителю.
Использование
Например, рассмотрим следующую структуру DOM.
<input type="email" placeholder="name@example.com" />
Вы можете заполнить поле ввода, найдя его по тексту-заполнителю:
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");
Аргументы
-
Текст для поиска элемента.
-
optionsPage.GetByPlaceholderOptions(optional)
Возвращает
getByRole
Added in: v1.27Позволяет находить элементы по их 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();
Аргументы
-
roleenum AriaRole { ALERT, ALERTDIALOG, APPLICATION, ARTICLE, BANNER, BLOCKQUOTE, BUTTON, CAPTION, CELL, CHECKBOX, CODE, COLUMNHEADER, COMBOBOX, COMPLEMENTARY, CONTENTINFO, DEFINITION, DELETION, DIALOG, DIRECTORY, DOCUMENT, EMPHASIS, FEED, FIGURE, FORM, GENERIC, GRID, GRIDCELL, GROUP, HEADING, IMG, INSERTION, LINK, LIST, LISTBOX, LISTITEM, LOG, MAIN, MARQUEE, MATH, METER, MENU, MENUBAR, MENUITEM, MENUITEMCHECKBOX, MENUITEMRADIO, NAVIGATION, NONE, NOTE, OPTION, PARAGRAPH, PRESENTATION, PROGRESSBAR, RADIO, RADIOGROUP, REGION, ROW, ROWGROUP, ROWHEADER, SCROLLBAR, SEARCH, SEARCHBOX, SEPARATOR, SLIDER, SPINBUTTON, STATUS, STRONG, SUBSCRIPT, SUPERSCRIPT, SWITCH, TAB, TABLE, TABLIST, TABPANEL, TERM, TEXTBOX, TIME, TIMER, TOOLBAR, TOOLTIP, TREE, TREEGRID, TREEITEM }#Требуемая ARIA роль.
-
optionsPage.GetByRoleOptions(optional)-
setCheckedboolean (optional)#Атрибут, который обычно устанавливается
aria-checkedили нативными элементами<input type=checkbox>.Узнайте больше о
aria-checked. -
setDisabledboolean (optional)#Атрибут, который обычно устанавливается
aria-disabledилиdisabled.примечаниеВ отличие от большинства других атрибутов,
disabledнаследуется через иерархию DOM. Узнайте больше оaria-disabled. -
setExactboolean (optional) Added in: v1.28#Совпадает ли setName точно: с учетом регистра и всей строки. По умолчанию false. Игнорируется, когда setName является регулярным выражением. Обратите внимание, что точное совпадение все равно обрезает пробелы.
-
setExpandedboolean (optional)#Атрибут, который обычно устанавливается
aria-expanded.Узнайте больше о
aria-expanded. -
setIncludeHiddenboolean (optional)#Опция, которая контролирует, соответствуют ли скрытые элементы. По умолчанию, только не скрытые элементы, как определено ARIA, соответствуют селектору роли.
Узнайте больше о
aria-hidden. -
Числовой атрибут, который обычно присутствует для ролей
heading,listitem,row,treeitem, с значениями по умолчанию для элементов<h1>-<h6>.Узнайте больше о
aria-level. -
setNameString | Pattern (optional)#Опция для соответствия доступному имени. По умолчанию, соответствие не учитывает регистр и ищет подстроку, используйте setExact для управления этим поведением.
Узнайте больше о доступном имени.
-
setPressedboolean (optional)#Атрибут, который обычно устанавливается
aria-pressed.Узнайте больше о
aria-pressed. -
setSelectedboolean (optional)#Атрибут, который обычно устанавливается
aria-selected.Узнайте больше о
aria-selected.
-
Возвращает
Детали
Селектор роли не заменяет аудиты доступности и тесты на соответствие, но дает раннюю обратную связь о рекомендациях ARIA.
Многие HTML элементы имеют неявно определенную роль, которая распознается селектором роли. Вы можете найти все поддерживаемые роли здесь. Рекомендации ARIA не рекомендуют дублировать неявные роли и атрибуты, устанавливая role и/или aria-* атрибуты на значения по умолчанию.
getByTestId
Added in: v1.27Находит элемент по тестовому идентификатору.
Использование
Рассмотрим следующую структуру DOM.
<button data-testid="directions">Itinéraire</button>
Вы можете найти элемент по его тестовому идентификатору:
page.getByTestId("directions").click();
Аргументы
Возвращает
Детали
По умолчанию используется атрибут data-testid в качестве тестового идентификатора. Используйте Selectors.setTestIdAttribute() для настройки другого атрибута тестового идентификатора, если это необходимо.
getByText
Added in: v1.27Позволяет находить элементы, содержащие заданный текст.
Смотрите также Locator.filter(), который позволяет сопоставлять по другим критериям, таким как доступная роль, а затем фильтровать по текстовому содержимому.
Использование
Рассмотрим следующую структуру DOM:
<div>Hello <span>world</span></div>
<div>Hello</div>
Вы можете найти по подстроке текста, точной строке или регулярному выражению:
// Соответствует <span>
page.getByText("world");
// Соответствует первому <div>
page.getByText("Hello world");
// Соответствует второму <div>
page.getByText("Hello", new Page.GetByTextOptions().setExact(true));
// Соответствует обоим <div>
page.getByText(Pattern.compile("Hello"));
// Соответствует второму <div>
page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE));
Аргументы
-
Текст для поиска элемента.
-
optionsPage.GetByTextOptions(optional)
Возвращает
Детали
Сопоставление по тексту всегда нормализует пробелы, даже при точном совпадении. Например, оно превращает несколько пробелов в один, превращает разрывы строк в пробелы и игнорирует начальные и конечные пробелы.
Элементы ввода типа button и submit сопоставляются по их value, а не по текстовому содержимому. Например, поиск по тексту "Log in" соответствует <input type=button value="Log in">.
getByTitle
Added in: v1.27Позволяет находить элементы по их атрибуту title.
Использование
Рассмотрим следующую структуру DOM.
<span title='Issues count'>25 issues</span>
Вы можете проверить количество проблем, найдя его по тексту заголовка:
assertThat(page.getByTitle("Issues count")).hasText("25 issues");
Аргументы
-
Текст для поиска элемента.
-
optionsPage.GetByTitleOptions(optional)
Возвращает
goBack
Added before v1.9Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления. Если невозможно вернуться назад, возвращает null.
Переход на предыдущую страницу в истории.
Usage
Page.goBack();
Page.goBack(options);
Arguments
optionsPage.GoBackOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда получен сетевой ответ и документ начал загружаться.
-
Returns
goForward
Added before v1.9Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления. Если невозможно перейти вперед, возвращает null.
Переход на следующую страницу в истории.
Usage
Page.goForward();
Page.goForward(options);
Arguments
optionsPage.GoForwardOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда получен сетевой ответ и документ начал загружаться.
-
Returns
isClosed
Added before v1.9Указывает, что страница была закрыта.
Usage
Page.isClosed();
Returns
locator
Added in: v1.14Метод возвращает локатор элемента, который можно использовать для выполнения действий на этой странице/фрейме. Локатор разрешается в элемент непосредственно перед выполнением действия, поэтому серия действий на одном и том же локаторе может фактически выполняться на разных элементах DOM. Это произойдет, если структура DOM между этими действиями изменилась.
Usage
Page.locator(selector);
Page.locator(selector, options);
Arguments
-
Селектор для использования при разрешении элемента DOM.
-
optionsPage.LocatorOptions(optional)-
Сужает результаты метода до тех, которые содержат элементы, соответствующие этому относительному локатору. Например,
article, который имеетtext=Playwright, соответствует<article><div>Playwright</div></article>.Внутренний локатор должен быть относительным к внешнему локатору и запрашивается, начиная с совпадения внешнего локатора, а не с корня документа. Например, вы можете найти
content, который имеетdivв<article><content><div>Playwright</div></content></article>. Однако поискcontent, который имеетarticle div, не удастся, потому что внутренний локатор должен быть относительным и не должен использовать элементы за пределамиcontent.Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.
-
setHasNotLocator (optional) Added in: v1.33#Соответствует элементам, которые не содержат элемент, соответствующий внутреннему локатору. Внутренний локатор запрашивается относительно внешнего. Например,
article, который не имеетdiv, соответствует<article><span>Playwright</span></article>.Обратите внимание, что внешние и внутренние локаторы должны принадлежать одному и тому же фрейму. Внутренний локатор не должен содержать FrameLocators.
-
setHasNotTextString | Pattern (optional) Added in: v1.33#Соответствует элементам, которые не содержат указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче [строки] сопоставление нечувствительно к регистру и ищет подстроку.
-
setHasTextString | Pattern (optional)#Соответствует элементам, содержащим указанный текст где-либо внутри, возможно, в дочернем или потомке элемента. При передаче [строки] сопоставление нечувствительно к регистру и ищет подстроку. Например,
"Playwright"соответствует<article><div>Playwright</div></article>.
-
Returns
mainFrame
Added before v1.9Основной фрейм страницы. Страница гарантированно имеет основной фрейм, который сохраняется во время навигации.
Usage
Page.mainFrame();
Returns
navigate
Added before v1.9Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с первым не перенаправленным ответом.
Метод вызовет ошибку, если:
- произошла ошибка SSL (например, в случае самоподписанных сертификатов).
- целевой URL недействителен.
- setTimeout превышен во время навигации.
- удаленный сервер не отвечает или недоступен.
- основной ресурс не удалось загрузить.
Метод не вызовет ошибку, если удаленный сервер вернет любой допустимый код состояния HTTP, включая 404 "Не найдено" и 500 "Внутренняя ошибка сервера". Код состояния для таких ответов можно получить, вызвав Response.status().
Метод либо вызывает ошибку, либо возвращает ответ основного ресурса. Единственными исключениями являются навигация на about:blank или навигация на тот же URL с другим хэшем, которые будут успешными и вернут null.
Режим без головы не поддерживает навигацию к PDF-документу. См. проблему.
Usage
Page.navigate(url);
Page.navigate(url, options);
Arguments
-
URL для перехода на страницу. URL должен включать схему, например,
https://. Когда setBaseURL был предоставлен через параметры контекста и переданный URL является путем, он объединяется с помощью конструктораnew URL(). -
optionsPage.NavigateOptions(optional)-
Значение заголовка Referer. Если предоставлено, оно будет иметь приоритет над значением заголовка referer, установленным с помощью Page.setExtraHTTPHeaders().
-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда получен сетевой ответ и документ начал загружаться.
-
Returns
onceDialog
Added in: v1.10Добавляет одноразовый обработчик Dialog. Обработчик будет удален сразу после создания следующего Dialog.
page.onceDialog(dialog -> {
dialog.accept("foo");
});
// выводит 'foo'
System.out.println(page.evaluate("prompt('Enter string:')"));
// выводит 'null', так как диалог будет автоматически отклонен, потому что нет обработчиков.
System.out.println(page.evaluate("prompt('Enter string:')"));
Этот код выше эквивалентен:
Consumer<Dialog> handler = new Consumer<Dialog>() {
@Override
public void accept(Dialog dialog) {
dialog.accept("foo");
page.offDialog(this);
}
};
page.onDialog(handler);
// выводит 'foo'
System.out.println(page.evaluate("prompt('Enter string:')"));
// выводит 'null', так как диалог будет автоматически отклонен, потому что нет обработчиков.
System.out.println(page.evaluate("prompt('Enter string:')"));
Usage
Page.onceDialog(handler);
Arguments
-
Получает объект Dialog, он должен либо Dialog.accept(), либо Dialog.dismiss() диалог - в противном случае страница будет заморожена, ожидая диалога, и такие действия, как клик, никогда не завершатся.
opener
Added before v1.9Возвращает открыватель для всплывающих страниц и null для других. Если открыватель уже был закрыт, возвращает null.
Usage
Page.opener();
Returns
pause
Added in: v1.9Приостанавливает выполнение скрипта. Playwright остановит выполнение скрипта и будет ждать, пока пользователь не нажмет кнопку 'Resume' в оверлее страницы или не вызовет playwright.resume() в консоли DevTools.
Пользователь может исследовать селекторы или выполнять ручные шаги во время паузы. Возобновление продолжит выполнение оригинального скрипта с того места, где он был приостановлен.
Этот метод требует, чтобы Playwright был запущен в режиме с интерфейсом, с ложным параметром setHeadless.
Usage
Page.pause();
Returns
pdf
Added before v1.9Возвращает буфер PDF.
page.pdf() генерирует pdf страницы с print css media. Чтобы сгенерировать pdf с screen media, вызовите Page.emulateMedia() перед вызовом page.pdf():
По умолчанию page.pdf() генерирует pdf с измененными цветами для печати. Используйте свойство -webkit-print-color-adjust, чтобы принудительно отобразить точные цвета.
Usage
// Генерирует PDF с типом медиа "screen".
page.emulateMedia(new Page.EmulateMediaOptions().setMedia(Media.SCREEN));
page.pdf(new Page.PdfOptions().setPath(Paths.get("page.pdf")));
Параметры setWidth, setHeight и setMargin принимают значения с указанием единиц измерения. Значения без указания единиц измерения считаются пикселями.
Несколько примеров:
page.pdf({width: 100})- печатает с шириной, установленной в 100 пикселейpage.pdf({width: '100px'})- печатает с шириной, установленной в 100 пикселейpage.pdf({width: '10cm'})- печатает с шириной, установленной в 10 сантиметров.
Все возможные единицы измерения:
px- пиксельin- дюймcm- сантиметрmm- миллиметр
Параметры setFormat:
Letter: 8.5in x 11inLegal: 8.5in x 14inTabloid: 11in x 17inLedger: 17in x 11inA0: 33.1in x 46.8inA1: 23.4in x 33.1inA2: 16.54in x 23.4inA3: 11.7in x 16.54inA4: 8.27in x 11.7inA5: 5.83in x 8.27inA6: 4.13in x 5.83in
Разметка setHeaderTemplate и setFooterTemplate имеет следующие ограничения: > 1. Теги скриптов внутри шаблонов не оцениваются. > 2. Стили страницы не видны внутри шаблонов.
Arguments
optionsPage.PdfOptions(optional)-
setDisplayHeaderFooterboolean (optional)#Отображать заголовок и нижний колонтитул. По умолчанию
false. -
setFooterTemplateString (optional)#HTML-шаблон для нижнего колонтитула печати. Должен использовать тот же формат, что и setHeaderTemplate.
-
Формат бумаги. Если установлен, имеет приоритет над параметрами setWidth или setHeight. По умолчанию 'Letter'.
-
setHeaderTemplateString (optional)#HTML-шаблон для заголовка печати. Должен быть допустимой HTML-разметкой с использованием следующих классов для вставки значений печати в них:
'date'отформатированная дата печати'title'заголовок документа'url'местоположение документа'pageNumber'номер текущей страницы'totalPages'общее количество страниц в документе
-
Высота бумаги, принимает значения с указанием единиц измерения.
-
setLandscapeboolean (optional)#Ориентация бумаги. По умолчанию
false. -
setMarginMargin (optional)#-
setTopString (optional)Верхнее поле, принимает значения с указанием единиц измерения. По умолчанию
0. -
setRightString (optional)Правое поле, принимает значения с указанием единиц измерения. По умолчанию
0. -
setBottomString (optional)Нижнее поле, принимает значения с указанием единиц измерения. По умолчанию
0. -
setLeftString (optional)Левое поле, принимает значения с указанием единиц измерения. По умолчанию
0.
Поля бумаги, по умолчанию отсутствуют.
-
-
setOutlineboolean (optional) Added in: v1.42#Включать ли контур документа в PDF. По умолчанию
false. -
setPageRangesString (optional)#Диапазоны страниц для печати, например, '1-5, 8, 11-13'. По умолчанию пустая строка, что означает печать всех страниц.
-
Путь к файлу для сохранения PDF. Если setPath является относительным путем, то он разрешается относительно текущей рабочей директории. Если путь не указан, PDF не будет сохранен на диск.
-
setPreferCSSPageSizeboolean (optional)#Предпочитать любой размер страницы CSS
@page, объявленный на странице, над тем, что объявлено в параметрах setWidth и setHeight или setFormat. По умолчаниюfalse, что будет масштабировать содержимое, чтобы оно соответствовало размеру бумаги. -
setPrintBackgroundboolean (optional)#Печать фоновой графики. По умолчанию
false. -
Масштаб рендеринга веб-страницы. По умолчанию
1. Масштаб должен быть между 0.1 и 2. -
setTaggedboolean (optional) Added in: v1.42#Генерировать ли тегированный (доступный) PDF. По умолчанию
false. -
Ширина бумаги, принимает значения с указанием единиц измерения.
-
Returns
reload
Added before v1.9Этот метод перезагружает текущую страницу так же, как если бы пользователь инициировал обновление браузера. Возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления.
Usage
Page.reload();
Page.reload(options);
Arguments
optionsPage.ReloadOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда получен сетевой ответ и документ начал загружаться.
-
Returns
removeLocatorHandler
Added in: v1.44Удаляет все обработчики локаторов, добавленные с помощью Page.addLocatorHandler() для конкретного локатора.
Usage
Page.removeLocatorHandler(locator);
Arguments
-
Локатор, переданный в Page.addLocatorHandler().
Returns
requestGC
Added in: v1.48Запросить у страницы выполнение сборки мусора. Обратите внимание, что нет гарантии, что все недоступные объекты будут собраны.
Это полезно для обнаружения утечек памяти. Например, если на вашей странице есть большой объект 'suspect', который может утекать, вы можете проверить, что он не утек, используя WeakRef.
// 1. На вашей странице сохраните WeakRef для "suspect".
page.evaluate("globalThis.suspectWeakRef = new WeakRef(suspect)");
// 2. Запросите сборку мусора.
page.requestGC();
// 3. Убедитесь, что weak ref не ссылается на оригинальный объект.
assertTrue(page.evaluate("!globalThis.suspectWeakRef.deref()"));
Usage
Page.requestGC();
Returns
route
Added before v1.9Маршрутизация предоставляет возможность изменять сетевые запросы, которые выполняются страницей.
После включения маршрутизации каждый запрос, соответствующий шаблону URL, будет приостановлен, если он не будет продолжен, выполнен или прерван.
Обработчик будет вызван только для первого URL, если ответ является перенаправлением.
Page.route() не будет перехватывать запросы, перехваченные Service Worker. См. эту проблему. Мы рекомендуем отключать Service Workers при использовании перехвата запросов, установив setServiceWorkers в 'block'.
Page.route() не будет перехватывать первый запрос всплывающей страницы. Используйте BrowserContext.route() вместо этого.
Usage
Пример наивного обработчика, который прерывает все запросы изображений:
Page page = browser.newPage();
page.route("**/*.{png,jpg,jpeg}", route -> route.abort());
page.navigate("https://example.com");
browser.close();
или тот же фрагмент, используя вместо этого шаблон регулярного выражения:
Page page = browser.newPage();
page.route(Pattern.compile("(\\.png$)|(\\.jpg$)"),route -> route.abort());
page.navigate("https://example.com");
browser.close();
Возможно исследовать запрос, чтобы решить, какое действие маршрута выполнить. Например, имитируя все запросы, содержащие некоторые данные POST, и оставляя все остальные запросы как есть:
page.route("/api/**", route -> {
if (route.request().postData().contains("my-string"))
route.fulfill(new Route.FulfillOptions().setBody("mocked-data"));
else
route.resume();
});
Маршруты страницы имеют приоритет над маршрутами контекста браузера (настроенными с помощью BrowserContext.route()), когда запрос соответствует обоим обработчикам.
Чтобы удалить маршрут с его обработчиком, вы можете использовать Page.unroute().
Включение маршрутизации отключает http-кэш.
Arguments
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, шаблон регулярного выражения или предикат, получающий [URL] для сопоставления при маршрутизации. Когда setBaseURL был предоставлен через параметры контекста и переданный URL является путем, он объединяется с помощью конструктора
new URL(). -
функция обработчика для маршрутизации запроса.
-
optionsPage.RouteOptions(optional)
Returns
routeFromHAR
Added in: v1.23Если указано, сетевые запросы, сделанные на странице, будут обслуживаться из HAR-файла. Подробнее читайте в разделе Replaying from HAR.
Playwright не будет обслуживать запросы, перехваченные Service Worker, из HAR-файла. См. эту проблему. Мы рекомендуем отключать Service Workers при использовании перехвата запросов, установив setServiceWorkers в 'block'.
Использование
Page.routeFromHAR(har);
Page.routeFromHAR(har, options);
Аргументы
-
Путь к HAR файлу с предварительно записанными сетевыми данными. Если
pathявляется относительным путем, то он разрешается относительно текущей рабочей директории. -
optionsPage.RouteFromHAROptions(опционально)-
setNotFoundenum HarNotFound { ABORT, FALLBACK }(опционально)#- Если установлено в 'abort', любой запрос, не найденный в HAR-файле, будет прерван.
- Если установлено в 'fallback', отсутствующие запросы будут отправлены в сеть.
По умолчанию
abort. -
setUpdateboolean (опционально)#Если указано, обновляет данный HAR с фактической сетевой информацией вместо обслуживания из файла. Файл записывается на диск, когда BrowserContext.close() вызывается.
-
setUpdateContentenum RouteFromHarUpdateContentPolicy { EMBED, ATTACH }(опционально) Added in: v1.32#Опциональная настройка для управления содержимым ресурсов. Если указано
attach, ресурсы сохраняются как отдельные файлы или записи в ZIP-архиве. Если указаноembed, содержимое хранится в HAR-файле. -
setUpdateModeenum HarMode { FULL, MINIMAL }(опционально) Added in: v1.32#Когда установлено в
minimal, записывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницу, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюminimal. -
setUrlString | Pattern (опционально)#Глобальный шаблон, регулярное выражение или предикат для сопоставления URL запроса. Только запросы с URL, соответствующим шаблону, будут обслуживаться из HAR-файла. Если не указано, все запросы обслуживаются из HAR-файла.
-
Возвращает
routeWebSocket
Added in: v1.48Этот метод позволяет изменять WebSocket-соединения, которые создаются страницей.
Обратите внимание, что только WebSocket, созданные после вызова этого метода, будут маршрутизированы. Рекомендуется вызывать этот метод перед навигацией по странице.
Использование
Ниже приведен пример простого мока, который отвечает на одно сообщение. Подробнее и примеры смотрите в WebSocketRoute.
page.routeWebSocket("/ws", ws -> {
ws.onMessage(frame -> {
if ("request".equals(frame.text()))
ws.send("response");
});
});
Аргументы
-
urlString | Pattern | Predicate<String>#Только WebSocket с URL, соответствующим этому шаблону, будут маршрутизированы. Строковый шаблон может быть относительным к setBaseURL контекстной опции.
-
handlerConsumer<WebSocketRoute>#Функция-обработчик для маршрутизации WebSocket.
Возвращает
screenshot
Added before v1.9Возвращает буфер с захваченным скриншотом.
Использование
Page.screenshot();
Page.screenshot(options);
Аргументы
optionsPage.ScreenshotOptions(опционально)-
setAnimationsenum ScreenshotAnimations { DISABLED, ALLOW }(опционально)#Когда установлено в
"disabled", останавливает CSS-анимации, CSS-переходы и Web-анимации. Анимации получают разное обращение в зависимости от их продолжительности:- конечные анимации быстро перематываются до завершения, так что они вызовут событие
transitionend. - бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.
По умолчанию
"allow", что оставляет анимации нетронутыми. - конечные анимации быстро перематываются до завершения, так что они вызовут событие
-
setCaretenum ScreenshotCaret { HIDE, INITIAL }(опционально)#Когда установлено в
"hide", скриншот скроет текстовый курсор. Когда установлено в"initial", поведение текстового курсора не изменится. По умолчанию"hide". -
setClipClip (опционально)#-
setXdoublex-координата верхнего левого угла области обрезки
-
setYdoubley-координата верхнего левого угла области обрезки
-
setWidthdoubleширина области обрезки
-
setHeightdoubleвысота области обрезки
Объект, который указывает обрезку результирующего изображения.
-
-
setFullPageboolean (опционально)#Если true, делает скриншот всей прокручиваемой страницы, вместо текущего видимого окна. По умолчанию
false. -
setMaskList<Locator> (опционально)#Укажите локаторы, которые должны быть замаскированы при создании скриншота. Замаскированные элементы будут перекрыты розовым прямоугольником
#FF00FF(настраивается с помощью setMaskColor), который полностью покрывает их ограничивающий прямоугольник. Маска также применяется к невидимым элементам, см. Matching only visible elements для отключения этого. -
setMaskColorString (опционально) Added in: v1.35#Укажите цвет перекрывающего прямоугольника для замаскированных элементов в CSS color format. Цвет по умолчанию розовый
#FF00FF. -
setOmitBackgroundboolean (опционально)#Скрывает белый фон по умолчанию и позволяет делать скриншоты с прозрачностью. Не применимо к изображениям
jpeg. По умолчаниюfalse. -
Путь к файлу для сохранения изображения. Тип скриншота будет определен по расширению файла. Если setPath является относительным путем, то он разрешается относительно текущей рабочей директории. Если путь не указан, изображение не будет сохранено на диск.
-
Качество изображения, от 0 до 100. Не применимо к изображениям
png. -
setScaleenum ScreenshotScale { CSS, DEVICE }(опционально)#Когда установлено в
"css", скриншот будет иметь один пиксель на каждый css пиксель на странице. Для устройств с высоким разрешением это позволит сохранить скриншоты небольшими. Использование опции"device"создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высоким разрешением будут в два раза больше или даже больше.По умолчанию
"device". -
setStyleString (опционально) Added in: v1.41#Текст стиля, который будет применен при создании скриншота. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь вам создавать повторяемые скриншоты. Этот стиль проникает в Shadow DOM и применяется к внутренним фреймам.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTypeenum ScreenshotType { PNG, JPEG }(опционально)#Укажите тип скриншота, по умолчанию
png.
-
Возвращает
setContent
Added before v1.9Этот метод внутренне вызывает document.write(), наследуя все его специфические характеристики и поведение.
Использование
Page.setContent(html);
Page.setContent(html, options);
Аргументы
-
HTML-разметка для назначения странице.
-
optionsPage.SetContentOptions(опционально)-
setTimeoutdouble (опционально)#Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(опционально)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
Возвращает
setDefaultNavigationTimeout
Added before v1.9Эта настройка изменит максимальное время навигации по умолчанию для следующих методов и связанных с ними ярлыков:
- Page.goBack()
- Page.goForward()
- Page.navigate()
- Page.reload()
- Page.setContent()
- Page.waitForNavigation()
- Page.waitForURL()
Использование
Page.setDefaultNavigationTimeout(timeout);
Аргументы
setDefaultTimeout
Added before v1.9Эта настройка изменит максимальное время по умолчанию для всех методов, принимающих опцию timeout.
Page.setDefaultNavigationTimeout() имеет приоритет над Page.setDefaultTimeout().
Использование
Page.setDefaultTimeout(timeout);
Аргументы
setExtraHTTPHeaders
Added before v1.9Дополнительные HTTP-заголовки будут отправлены с каждым запросом, инициированным страницей.
Page.setExtraHTTPHeaders() не гарантирует порядок заголовков в исходящих запросах.
Использование
Page.setExtraHTTPHeaders(headers);
Аргументы
-
Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. Все значения заголовков должны быть строками.
Возвращает
setViewportSize
Added before v1.9В случае нескольких страниц в одном браузере каждая страница может иметь свой собственный размер области просмотра. Однако Browser.newContext() позволяет установить размер области просмотра (и многое другое) для всех страниц в контексте сразу.
Page.setViewportSize() изменит размер страницы. Многие веб-сайты не ожидают, что телефоны изменят размер, поэтому вы должны установить размер области просмотра перед навигацией по странице. Page.setViewportSize() также сбросит размер screen, используйте Browser.newContext() с параметрами screen и viewport, если вам нужно лучше контролировать эти свойства.
Использование
Page page = browser.newPage();
page.setViewportSize(640, 480);
page.navigate("https://example.com");
Аргументы
-
Ширина страницы в пикселях.
-
Высота страницы в пикселях.
Возвращает
title
Added before v1.9Возвращает заголовок страницы.
Использование
Page.title();
Возвращает
unroute
Added before v1.9Удаляет маршрут, созданный с помощью Page.route(). Когда handler не указан, удаляет все маршруты для url.
Использование
Page.unroute(url);
Page.unroute(url, handler);
Аргументы
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, регулярное выражение или предикат, получающий [URL] для сопоставления при маршрутизации.
-
handlerConsumer<Route> (опционально)#Опциональная функция-обработчик для маршрутизации запроса.
Возвращает
unrouteAll
Added in: v1.41Удаляет все маршруты, созданные с помощью Page.route() и Page.routeFromHAR().
Использование
Page.unrouteAll();
Возвращает
url
Added before v1.9Использование
Page.url();
Возвращает
video
Added before v1.9Объект видео, связанный с этой страницей.
Использование
Page.video();
Возвращает
viewportSize
Added before v1.9Использование
Page.viewportSize();
Возвращает
waitForClose
Added in: v1.11Выполняет действие и ждет, пока страница не закроется.
Использование
Page.waitForClose(callback);
Page.waitForClose(callback, options);
Аргументы
-
optionsPage.WaitForCloseOptions(опционально)-
setTimeoutdouble (опционально) Added in: v1.9#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
callbackRunnable Added in: v1.9#Обратный вызов, который выполняет действие, вызывающее событие.
Возвращает
waitForCondition
Added in: v1.32Метод будет блокировать выполнение, пока условие не вернет true. Все события Playwright будут отправлены, пока метод ожидает выполнения условия.
Использование
Используйте метод для ожидания условия, зависящего от событий страницы:
List<String> messages = new ArrayList<>();
page.onConsoleMessage(m -> messages.add(m.text()));
page.getByText("Submit button").click();
page.waitForCondition(() -> messages.size() > 3);
Аргументы
-
condition[BooleanSupplier]#Условие для ожидания.
-
optionsPage.WaitForConditionOptions(опционально)-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Возвращает
waitForConsoleMessage
Added in: v1.9Выполняет действие и ждет, пока ConsoleMessage не будет зарегистрировано на странице. Если предикат предоставлен, он передает значение ConsoleMessage в функцию predicate и ждет, пока predicate(message) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до того, как событие Page.onConsoleMessage(handler) будет вызвано.
Использование
Page.waitForConsoleMessage(callback);
Page.waitForConsoleMessage(callback, options);
Аргументы
-
optionsPage.WaitForConsoleMessageOptions(опционально)-
setPredicatePredicate<ConsoleMessage> (опционально)#Получает объект ConsoleMessage и разрешается в истинное значение, когда ожидание должно завершиться.
-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Возвращает
waitForDownload
Added in: v1.9Выполняет действие и ждет, пока не начнется новая Download. Если предикат предоставлен, он передает значение Download в функцию predicate и ждет, пока predicate(download) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до того, как событие загрузки будет вызвано.
Использование
Page.waitForDownload(callback);
Page.waitForDownload(callback, options);
Аргументы
-
optionsPage.WaitForDownloadOptions(опционально)-
setPredicatePredicate<Download> (опционально)#Получает объект Download и разрешается в истинное значение, когда ожидание должно завершиться.
-
setTimeoutdouble (опционально)#Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Возвращает
waitForFileChooser
Added in: v1.9Выполняет действие и ожидает создания нового FileChooser. Если предоставлен предикат, он передает значение FileChooser в функцию predicate и ожидает, пока predicate(fileChooser) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до открытия выбора файла.
Usage
Page.waitForFileChooser(callback);
Page.waitForFileChooser(callback, options);
Arguments
-
optionsPage.WaitForFileChooserOptions(optional)-
setPredicatePredicate<FileChooser> (optional)#Получает объект FileChooser и разрешает в истинное значение, когда ожидание должно разрешиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForFunction
Added before v1.9Возвращает, когда expression возвращает истинное значение. Разрешается в JSHandle истинного значения.
Usage
Page.waitForFunction() может быть использован для наблюдения за изменением размера области просмотра:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType webkit = playwright.webkit();
Browser browser = webkit.launch();
Page page = browser.newPage();
page.setViewportSize(50, 50);
page.waitForFunction("() => window.innerWidth < 100");
browser.close();
}
}
}
Чтобы передать аргумент в предикат функции Page.waitForFunction():
String selector = ".foo";
page.waitForFunction("selector => !!document.querySelector(selector)", selector);
Arguments
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (optional)#Необязательный аргумент для передачи в expression.
-
optionsPage.WaitForFunctionOptions(optional)-
setPollingIntervaldouble (optional)#Если указано, то это интервал в миллисекундах, с которым функция будет выполняться. По умолчанию, если опция не указана, expression выполняется в
requestAnimationFrameобратном вызове. -
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
waitForLoadState
Added before v1.9Возвращает, когда достигнуто требуемое состояние загрузки.
Это разрешается, когда страница достигает требуемого состояния загрузки, по умолчанию load. Навигация должна быть завершена, когда вызывается этот метод. Если текущий документ уже достиг требуемого состояния, разрешается немедленно.
Большую часть времени этот метод не нужен, потому что Playwright автоматически ожидает перед каждым действием.
Usage
page.getByRole(AriaRole.BUTTON).click(); // Клик вызывает навигацию.
page.waitForLoadState(); // Обещание разрешается после события "load".
Page popup = page.waitForPopup(() -> {
page.getByRole(AriaRole.BUTTON).click(); // Клик вызывает всплывающее окно.
});
// Ожидание события "DOMContentLoaded"
popup.waitForLoadState(LoadState.DOMCONTENTLOADED);
System.out.println(popup.title()); // Всплывающее окно готово к использованию.
Arguments
-
stateenum LoadState { LOAD, DOMCONTENTLOADED, NETWORKIDLE }(optional)#Необязательное состояние загрузки для ожидания, по умолчанию
load. Если состояние уже достигнуто при загрузке текущего документа, метод разрешается немедленно. Может быть одним из:'load'- ожидание, пока не будет вызвано событиеload.'domcontentloaded'- ожидание, пока не будет вызвано событиеDOMContentLoaded.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ ожидание, пока не будет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.
-
optionsPage.WaitForLoadStateOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout().
-
Returns
waitForPopup
Added in: v1.9Выполняет действие и ожидает всплывающее окно Page. Если предоставлен предикат, он передает значение [Popup] в функцию predicate и ожидает, пока predicate(page) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до вызова события всплывающего окна.
Usage
Page.waitForPopup(callback);
Page.waitForPopup(callback, options);
Arguments
-
optionsPage.WaitForPopupOptions(optional)-
setPredicatePredicate<Page> (optional)#Получает объект Page и разрешает в истинное значение, когда ожидание должно разрешиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForRequest
Added before v1.9Ожидает совпадения запроса и возвращает его. См. ожидание события для получения более подробной информации о событиях.
Usage
// Ожидает следующего запроса с указанным URL
Request request = page.waitForRequest("https://example.com/resource", () -> {
// Вызывает запрос
page.getByText("trigger request").click();
});
// Ожидает следующего запроса, соответствующего некоторым условиям
Request request = page.waitForRequest(request -> "https://example.com".equals(request.url()) && "GET".equals(request.method()), () -> {
// Вызывает запрос
page.getByText("trigger request").click();
});
Arguments
-
urlOrPredicateString | Pattern | Predicate<Request>#URL запроса в виде строки, регулярного выражения или предиката, получающего объект Request. Когда setBaseURL был предоставлен через параметры контекста и переданный URL является путем, он объединяется через конструктор
new URL(). -
optionsPage.WaitForRequestOptions(optional)-
Максимальное время ожидания в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя метод Page.setDefaultTimeout().
-
-
callbackRunnable Added in: v1.9#Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForRequestFinished
Added in: v1.12Выполняет действие и ожидает завершения загрузки Request. Если предоставлен предикат, он передает значение Request в функцию predicate и ожидает, пока predicate(request) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до вызова события Page.onRequestFinished(handler).
Usage
Page.waitForRequestFinished(callback);
Page.waitForRequestFinished(callback, options);
Arguments
-
optionsPage.WaitForRequestFinishedOptions(optional)-
setPredicatePredicate<Request> (optional)#Получает объект Request и разрешает в истинное значение, когда ожидание должно разрешиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForResponse
Added before v1.9Возвращает совпавший ответ. См. ожидание события для получения более подробной информации о событиях.
Usage
// Ожидает следующего ответа с указанным URL
Response response = page.waitForResponse("https://example.com/resource", () -> {
// Вызывает ответ
page.getByText("trigger response").click();
});
// Ожидает следующего ответа, соответствующего некоторым условиям
Response response = page.waitForResponse(response -> "https://example.com".equals(response.url()) && response.status() == 200 && "GET".equals(response.request().method()), () -> {
// Вызывает ответ
page.getByText("trigger response").click();
});
Arguments
-
urlOrPredicateString | Pattern | Predicate<Response>#URL запроса в виде строки, регулярного выражения или предиката, получающего объект Response. Когда setBaseURL был предоставлен через параметры контекста и переданный URL является путем, он объединяется через конструктор
new URL(). -
optionsPage.WaitForResponseOptions(optional)-
Максимальное время ожидания в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
-
callbackRunnable Added in: v1.9#Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForURL
Added in: v1.11Ожидает, пока основной фрейм перейдет на указанный URL.
Usage
page.click("a.delayed-navigation"); // Клик по ссылке косвенно вызывает навигацию
page.waitForURL("**/target.html");
Arguments
-
urlString | Pattern | Predicate<String>#Глобальный шаблон, регулярное выражение или предикат, получающий [URL] для совпадения при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации к URL, который точно равен строке.
-
optionsPage.WaitForURLOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда вызвано событиеDOMContentLoaded.'load'- считать операцию завершенной, когда вызвано событиеload.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда получен сетевой ответ и документ начал загружаться.
-
Returns
waitForWebSocket
Added in: v1.9Выполняет действие и ожидает новый WebSocket. Если предоставлен предикат, он передает значение WebSocket в функцию predicate и ожидает, пока predicate(webSocket) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до вызова события WebSocket.
Usage
Page.waitForWebSocket(callback);
Page.waitForWebSocket(callback, options);
Arguments
-
optionsPage.WaitForWebSocketOptions(optional)-
setPredicatePredicate<WebSocket> (optional)#Получает объект WebSocket и разрешает в истинное значение, когда ожидание должно разрешиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Returns
waitForWorker
Added in: v1.9Выполняет действие и ожидает новый Worker. Если предоставлен предикат, он передает значение Worker в функцию predicate и ожидает, пока predicate(worker) не вернет истинное значение. Выдаст ошибку, если страница будет закрыта до вызова события worker.
Usage
Page.waitForWorker(callback);
Page.waitForWorker(callback, options);
Arguments
-
optionsPage.WaitForWorkerOptions(optional)-
setPredicatePredicate<Worker> (optional)#Получает объект Worker и разрешает в истинное значение, когда ожидание должно разрешиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя BrowserContext.setDefaultTimeout().
-
-
Обратный вызов, который выполняет действие, вызывающее событие.
Returns
workers
Added before v1.9Этот метод возвращает всех выделенных WebWorkers, связанных со страницей.
Это не включает ServiceWorkers
Usage
Page.workers();
Returns
Properties
clock()
Added in: v1.45Playwright имеет возможность имитировать часы и ход времени.
Usage
Page.clock()
Returns
keyboard()
Added before v1.9Usage
Page.keyboard()
Returns
mouse()
Added before v1.9Usage
Page.mouse()
Returns
request()
Added in: v1.16Помощник для тестирования API, связанный с этой страницей. Этот метод возвращает тот же экземпляр, что и BrowserContext.request() в контексте страницы. См. BrowserContext.request() для получения более подробной информации.
Usage
Page.request()
Returns
touchscreen()
Added before v1.9Usage
Page.touchscreen()
Returns
Events
onClose(handler)
Added before v1.9Вызывается, когда страница закрывается.
Usage
Page.onClose(handler)
Event data
onConsoleMessage(handler)
Added before v1.9Вызывается, когда JavaScript на странице вызывает один из методов консольного API, например, console.log или console.dir.
Аргументы, переданные в console.log, доступны в аргументе обработчика события ConsoleMessage.
Usage
page.onConsoleMessage(msg -> {
for (int i = 0; i < msg.args().size(); ++i)
System.out.println(i + ": " + msg.args().get(i).jsonValue());
});
page.evaluate("() => console.log('hello', 5, { foo: 'bar' })");
Event data
onCrash(handler)
Added before v1.9Вызывается, когда страница падает. Страницы браузера могут падать, если они пытаются выделить слишком много памяти. Когда страница падает, текущие и последующие операции будут выдавать ошибку.
Наиболее распространенный способ справиться с падениями - поймать исключение:
try {
// Падение может произойти во время клика.
page.click("button");
// Или во время ожидания события.
page.waitForPopup(() -> {});
} catch (PlaywrightException e) {
// Когда страница падает, сообщение об исключении содержит "crash".
}
Usage
Page.onCrash(handler)
Event data
onDialog(handler)
Added before v1.9Вызывается, когда появляется JavaScript-диалог, такой как alert, prompt, confirm или beforeunload. Слушатель должен либо Dialog.accept(), либо Dialog.dismiss() диалог - в противном случае страница заморозится, ожидая диалога, и действия, такие как клик, никогда не завершатся.
Использование
page.onDialog(dialog -> {
dialog.accept();
});
Когда нет слушателей Page.onDialog(handler) или BrowserContext.onDialog(handler), все диалоги автоматически отклоняются.
Данные события
onDOMContentLoaded(handler)
Added in: v1.9Вызывается, когда JavaScript-событие DOMContentLoaded отправляется.
Использование
Page.onDOMContentLoaded(handler)
Данные события
onDownload(handler)
Added before v1.9Вызывается, когда начинается загрузка вложения. Пользователь может получить доступ к основным операциям с файлами на загруженном контенте через переданный экземпляр Download.
Использование
Page.onDownload(handler)
Данные события
onFileChooser(handler)
Added in: v1.9Вызывается, когда предполагается появление выбора файла, например, после нажатия на <input type=file>. Playwright может ответить на это, установив файлы ввода с помощью FileChooser.setFiles(), которые могут быть загружены после этого.
page.onFileChooser(fileChooser -> {
fileChooser.setFiles(Paths.get("/tmp/myfile.pdf"));
});
Использование
Page.onFileChooser(handler)
Данные события
onFrameAttached(handler)
Added in: v1.9Вызывается, когда фрейм присоединяется.
Использование
Page.onFrameAttached(handler)
Данные события
onFrameDetached(handler)
Added in: v1.9Вызывается, когда фрейм отсоединяется.
Использование
Page.onFrameDetached(handler)
Данные события
onFrameNavigated(handler)
Added in: v1.9Вызывается, когда фрейм переходит на новый URL.
Использование
Page.onFrameNavigated(handler)
Данные события
onLoad(handler)
Added before v1.9Вызывается, когда JavaScript-событие load отправляется.
Использование
Page.onLoad(handler)
Данные события
onPageError(handler)
Added in: v1.9Вызывается, когда на странице происходит необработанное исключение.
// Логировать все необработанные ошибки в терминал
page.onPageError(exception -> {
System.out.println("Uncaught exception: " + exception);
});
// Перейти на страницу с исключением.
page.navigate("data:text/html,<script>throw new Error('Test')</script>");
Использование
Page.onPageError(handler)
Данные события
onPopup(handler)
Added before v1.9Вызывается, когда страница открывает новую вкладку или окно. Это событие вызывается в дополнение к BrowserContext.onPage(handler), но только для всплывающих окон, относящихся к этой странице.
Самый ранний момент, когда страница доступна, это когда она перешла на начальный URL. Например, при открытии всплывающего окна с window.open('http://example.com'), это событие сработает, когда сетевой запрос к "http://example.com" будет выполнен и его ответ начнет загружаться во всплывающем окне. Если вы хотите маршрутизировать/слушать этот сетевой запрос, используйте BrowserContext.route() и BrowserContext.onRequest(handler) соответственно вместо аналогичных методов на Page.
Page popup = page.waitForPopup(() -> {
page.getByText("open the popup").click();
});
System.out.println(popup.evaluate("location.href"));
Используйте Page.waitForLoadState(), чтобы дождаться, пока страница достигнет определенного состояния (в большинстве случаев это не потребуется).
Использование
Page.onPopup(handler)
Данные события
onRequest(handler)
Added before v1.9Вызывается, когда страница выполняет запрос. Объект request доступен только для чтения. Чтобы перехватывать и изменять запросы, смотрите Page.route() или BrowserContext.route().
Использование
Page.onRequest(handler)
Данные события
onRequestFailed(handler)
Added in: v1.9Вызывается, когда запрос не удается, например, из-за истечения времени ожидания.
page.onRequestFailed(request -> {
System.out.println(request.url() + " " + request.failure());
});
Ответы с ошибками HTTP, такие как 404 или 503, все еще считаются успешными ответами с точки зрения HTTP, поэтому запрос завершится событием Page.onRequestFinished(handler), а не Page.onRequestFailed(handler). Запрос будет считаться неудачным только в том случае, если клиент не может получить HTTP-ответ от сервера, например, из-за сетевой ошибки net::ERR_FAILED.
Использование
Page.onRequestFailed(handler)
Данные события
onRequestFinished(handler)
Added in: v1.9Вызывается, когда запрос успешно завершается после загрузки тела ответа. Для успешного ответа последовательность событий: request, response и requestfinished.
Использование
Page.onRequestFinished(handler)
Данные события
onResponse(handler)
Added before v1.9Вызывается, когда response статус и заголовки получены для запроса. Для успешного ответа последовательность событий: request, response и requestfinished.
Использование
Page.onResponse(handler)
Данные события
onWebSocket(handler)
Added in: v1.9Вызывается, когда отправляется запрос WebSocket.
Использование
Page.onWebSocket(handler)
Данные события
onWorker(handler)
Added before v1.9Вызывается, когда страница порождает выделенный WebWorker.
Использование
Page.onWorker(handler)
Данные события
Устарело
check
Added before v1.9Используйте основанный на локаторах Locator.check() вместо этого. Подробнее о локаторах.
Этот метод отмечает элемент, соответствующий selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже отмечен, этот метод возвращается немедленно.
- Подождите, пока не будут выполнены проверки actionability на найденном элементе, если только не установлена опция setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.mouse(), чтобы кликнуть в центр элемента.
- Убедитесь, что элемент теперь отмечен. Если нет, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
Page.check(selector);
Page.check(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsPage.CheckOptions(опционально)-
setForceboolean (опционально)#Нужно ли обходить проверки actionability. По умолчанию
false. -
setNoWaitAfterboolean (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
setPositionPosition (опционально) Added in: v1.11#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (опционально) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTrialboolean (опционально) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его.
-
Возвращает
click
Added before v1.9Используйте основанный на локаторах Locator.click() вместо этого. Подробнее о локаторах.
Этот метод кликает по элементу, соответствующему selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки actionability на найденном элементе, если только не установлена опция setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.mouse(), чтобы кликнуть в центр элемента или в указанную setPosition.
- Подождите, пока инициированные навигации либо не завершатся успешно, либо не завершатся с ошибкой, если только не установлена опция setNoWaitAfter.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Использование
Page.click(selector);
Page.click(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsPage.ClickOptions(опционально)-
setButtonenum MouseButton { LEFT, RIGHT, MIDDLE }(опционально)#По умолчанию
left. -
setClickCountint (опционально)#по умолчанию 1. См. UIEvent.detail.
-
setDelaydouble (опционально)#Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
setForceboolean (опционально)#Нужно ли обходить проверки actionability. По умолчанию
false. -
setModifiersList<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
setNoWaitAfterboolean (опционально)#УстарелоЭта опция по умолчанию будет
trueв будущем.Действия, инициирующие навигации, ожидают, пока эти навигации не произойдут и страницы не начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится эта опция только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false. -
setPositionPosition (опционально)#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (опционально) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTrialboolean (опционально) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его. Обратите внимание, что клавиатурныеmodifiersбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
dblclick
Added before v1.9Используйте основанный на локаторах Locator.dblclick() вместо этого. Подробнее о локаторах.
Этот метод двойного клика по элементу, соответствующему selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите, пока не будут выполнены проверки actionability на найденном элементе, если только не установлена опция setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.mouse(), чтобы дважды кликнуть в центр элемента или в указанную setPosition.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
page.dblclick() отправляет два события click и одно событие dblclick.
Использование
Page.dblclick(selector);
Page.dblclick(selector, options);
Аргументы
-
Селектор для поиска элемента. Если есть несколько элементов, удовлетворяющих селектору, будет использован первый.
-
optionsPage.DblclickOptions(опционально)-
setButtonenum MouseButton { LEFT, RIGHT, MIDDLE }(опционально)#По умолчанию
left. -
setDelaydouble (опционально)#Время ожидания между
mousedownиmouseupв миллисекундах. По умолчанию 0. -
setForceboolean (опционально)#Нужно ли обходить проверки actionability. По умолчанию
false. -
setModifiersList<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (опционально)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
setNoWaitAfterboolean (опционально)#УстарелоЭта опция не имеет эффекта.
Эта опция не имеет эффекта.
-
setPositionPosition (опционально)#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (опционально) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
setTimeoutdouble (опционально)#Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTrialboolean (опционально) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его. Обратите внимание, что клавиатурныеmodifiersбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Возвращает
dispatchEvent
Added before v1.9Use locator-based Locator.dispatchEvent() instead. Read more about locators.
Пример ниже отправляет событие click на элемент. Независимо от состояния видимости элемента, click отправляется. Это эквивалентно вызову element.click().
Usage
page.dispatchEvent("button#submit", "click");
Внутри создается экземпляр события на основе указанного type, инициализируется с помощью свойств eventInit и отправляется на элемент. События по умолчанию composed, cancelable и всплывают.
Поскольку eventInit специфичен для события, пожалуйста, обратитесь к документации по событиям для списков начальных свойств:
- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
Вы также можете указать JSHandle в качестве значения свойства, если хотите, чтобы живые объекты передавались в событие:
// Обратите внимание, что вы можете создать DataTransfer только в Chromium и Firefox
JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
Map<String, Object> arg = new HashMap<>();
arg.put("dataTransfer", dataTransfer);
page.dispatchEvent("#source", "dragstart", arg);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Тип DOM события:
"click","dragstart", и т.д. -
eventInitEvaluationArgument (optional)#Необязательные свойства инициализации, специфичные для события.
-
optionsPage.DispatchEventOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
evalOnSelector
Added in: v1.9This method does not wait for the element to pass actionability checks and therefore can lead to the flaky tests. Use Locator.evaluate(), other Locator helper methods or web-first assertions instead.
Метод находит элемент, соответствующий указанному селектору на странице, и передает его в качестве первого аргумента в expression. Если ни один элемент не соответствует селектору, метод выдает ошибку. Возвращает значение expression.
Если expression возвращает Promise, то Page.evalOnSelector() будет ждать разрешения промиса и вернет его значение.
Usage
String searchValue = (String) page.evalOnSelector("#search", "el => el.value");
String preloadHref = (String) page.evalOnSelector("link[rel=preload]", "el => el.href");
String html = (String) page.evalOnSelector(".main-container", "(e, suffix) => e.outerHTML + suffix", "hello");
Arguments
-
Селектор для запроса.
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (optional)#Необязательный аргумент для передачи в expression.
-
optionsPage.EvalOnSelectorOptions(optional)
Returns
evalOnSelectorAll
Added in: v1.9In most cases, Locator.evaluateAll(), other Locator helper methods and web-first assertions do a better job.
Метод находит все элементы, соответствующие указанному селектору на странице, и передает массив найденных элементов в качестве первого аргумента в expression. Возвращает результат вызова expression.
Если expression возвращает Promise, то Page.evalOnSelectorAll() будет ждать разрешения промиса и вернет его значение.
Usage
boolean divCounts = (boolean) page.evalOnSelectorAll("div", "(divs, min) => divs.length >= min", 10);
Arguments
-
Селектор для запроса.
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (optional)#Необязательный аргумент для передачи в expression.
Returns
fill
Added before v1.9Use locator-based Locator.fill() instead. Read more about locators.
Этот метод ждет элемент, соответствующий selector, ждет проверки actionability, фокусируется на элементе, заполняет его и вызывает событие input после заполнения. Обратите внимание, что вы можете передать пустую строку, чтобы очистить поле ввода.
Если целевой элемент не является <input>, <textarea> или [contenteditable] элементом, этот метод выдает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, будет заполнен именно этот элемент управления.
Для отправки более детализированных событий клавиатуры используйте Locator.pressSequentially().
Usage
Page.fill(selector, value);
Page.fill(selector, value, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Значение для заполнения элемента
<input>,<textarea>или[contenteditable]. -
optionsPage.FillOptions(optional)-
setForceboolean (optional) Added in: v1.13#Нужно ли обходить проверки actionability. По умолчанию
false. -
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
focus
Added before v1.9Use locator-based Locator.focus() instead. Read more about locators.
Этот метод получает элемент с selector и фокусируется на нем. Если нет элемента, соответствующего selector, метод ждет, пока соответствующий элемент не появится в DOM.
Usage
Page.focus(selector);
Page.focus(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.FocusOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
getAttribute
Added before v1.9Use locator-based Locator.getAttribute() instead. Read more about locators.
Возвращает значение атрибута элемента.
Usage
Page.getAttribute(selector, name);
Page.getAttribute(selector, name, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Имя атрибута, для которого нужно получить значение.
-
optionsPage.GetAttributeOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
hover
Added before v1.9Use locator-based Locator.hover() instead. Read more about locators.
Этот метод наводит курсор на элемент, соответствующий selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите проверки actionability на найденном элементе, если не установлен параметр setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.mouse(), чтобы навести курсор на центр элемента или указанную позицию setPosition.
Когда все шаги в совокупности не завершены в течение указанного времени setTimeout, этот метод выдает TimeoutError. Передача нулевого тайм-аута отключает это.
Usage
Page.hover(selector);
Page.hover(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.HoverOptions(optional)-
Нужно ли обходить проверки actionability. По умолчанию
false. -
setModifiersList<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (optional)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы будут нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
setNoWaitAfterboolean (optional) Added in: v1.28#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setPositionPosition (optional)#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods. -
setTrialboolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения. Обратите внимание, что клавиатурныеmodifiersбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Returns
innerHTML
Added before v1.9Use locator-based Locator.innerHTML() instead. Read more about locators.
Возвращает element.innerHTML.
Usage
Page.innerHTML(selector);
Page.innerHTML(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.InnerHTMLOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
innerText
Added before v1.9Use locator-based Locator.innerText() instead. Read more about locators.
Возвращает element.innerText.
Usage
Page.innerText(selector);
Page.innerText(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.InnerTextOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
inputValue
Added in: v1.13Use locator-based Locator.inputValue() instead. Read more about locators.
Возвращает input.value для выбранного элемента <input>, <textarea> или <select>.
Выдает ошибку для не-вводных элементов. Однако, если элемент находится внутри элемента <label>, который имеет связанный control, возвращает значение этого элемента управления.
Usage
Page.inputValue(selector);
Page.inputValue(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.InputValueOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
isChecked
Added before v1.9Use locator-based Locator.isChecked() instead. Read more about locators.
Возвращает, отмечен ли элемент. Выдает ошибку, если элемент не является флажком или радиокнопкой.
Usage
Page.isChecked(selector);
Page.isChecked(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsCheckedOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
isDisabled
Added before v1.9Use locator-based Locator.isDisabled() instead. Read more about locators.
Возвращает, отключен ли элемент, противоположность enabled.
Usage
Page.isDisabled(selector);
Page.isDisabled(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsDisabledOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов вызывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
isEditable
Added before v1.9Use locator-based Locator.isEditable() instead. Read more about locators.
Возвращает, является ли элемент редактируемым.
Usage
Page.isEditable(selector);
Page.isEditable(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsEditableOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
isEnabled
Added before v1.9Use locator-based Locator.isEnabled() instead. Read more about locators.
Возвращает, является ли элемент включенным.
Usage
Page.isEnabled(selector);
Page.isEnabled(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsEnabledOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
isHidden
Added before v1.9Use locator-based Locator.isHidden() instead. Read more about locators.
Возвращает, является ли элемент скрытым, противоположность видимости. selector, который не соответствует ни одному элементу, считается скрытым.
Usage
Page.isHidden(selector);
Page.isHidden(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsHiddenOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Deprecated
Этот параметр игнорируется. Page.isHidden() не ждет, пока элемент станет скрытым, и возвращается немедленно.
-
Returns
isVisible
Added before v1.9Use locator-based Locator.isVisible() instead. Read more about locators.
Возвращает, является ли элемент видимым. selector, который не соответствует ни одному элементу, считается невидимым.
Usage
Page.isVisible(selector);
Page.isVisible(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.IsVisibleOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Deprecated
Этот параметр игнорируется. Page.isVisible() не ждет, пока элемент станет видимым, и возвращается немедленно.
-
Returns
press
Added before v1.9Use locator-based Locator.press() instead. Read more about locators.
Фокусируется на элементе, а затем использует 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". При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.
Usage
Page page = browser.newPage();
page.navigate("https://keycode.info");
page.press("body", "A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png")));
page.press("body", "ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png" )));
page.press("body", "Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png" )));
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeftилиa. -
optionsPage.PressOptions(optional)-
Время ожидания между
keydownиkeyupв миллисекундах. По умолчанию 0. -
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр по умолчанию будет
trueв будущем.Действия, инициирующие навигацию, ожидают, пока эти навигации произойдут и страницы начнут загружаться. Вы можете отказаться от ожидания, установив этот флаг. Вам понадобится этот параметр только в исключительных случаях, таких как навигация на недоступные страницы. По умолчанию
false. -
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
querySelector
Added in: v1.9Use locator-based Page.locator() instead. Read more about locators.
Метод находит элемент, соответствующий указанному селектору на странице. Если ни один элемент не соответствует селектору, возвращаемое значение разрешается в null. Чтобы дождаться элемента на странице, используйте Locator.waitFor().
Usage
Page.querySelector(selector);
Page.querySelector(selector, options);
Arguments
-
Селектор для запроса.
-
optionsPage.QuerySelectorOptions(optional)
Returns
querySelectorAll
Added in: v1.9Use locator-based Page.locator() instead. Read more about locators.
Метод находит все элементы, соответствующие указанному селектору на странице. Если ни один элемент не соответствует селектору, возвращаемое значение разрешается в [].
Usage
Page.querySelectorAll(selector);
Arguments
Returns
selectOption
Added before v1.9Use locator-based Locator.selectOption() instead. Read more about locators.
Этот метод ожидает элемент, соответствующий selector, ожидает проверки actionability, ждет, пока все указанные опции не будут присутствовать в элементе <select>, и выбирает эти опции.
Если целевой элемент не является элементом <select>, этот метод выбрасывает ошибку. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный control, будет использован контроль.
Возвращает массив значений опций, которые были успешно выбраны.
Вызывает событие change и input, как только все предоставленные опции были выбраны.
Usage
// Single selection matching the value or label
page.selectOption("select#colors", "blue");
// single selection matching both the value and the label
page.selectOption("select#colors", new SelectOption().setLabel("Blue"));
// multiple selection
page.selectOption("select#colors", new String[] {"red", "green", "blue"});
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
valuesnull | String | ElementHandle | String[] |SelectOption| ElementHandle[] |SelectOption[]#-
setValueString (optional)Соответствует
option.value. Необязательно. -
setLabelString (optional)Соответствует
option.label. Необязательно. -
setIndexint (optional)Соответствует индексу. Необязательно.
Опции для выбора. Если
<select>имеет атрибутmultiple, все соответствующие опции выбираются, в противном случае выбирается только первая опция, соответствующая одной из переданных опций. Строковые значения соответствуют как значениям, так и меткам. Опция считается соответствующей, если все указанные свойства совпадают. -
-
optionsPage.SelectOptionOptions(optional)-
setForceboolean (optional) Added in: v1.13#Обойти проверки actionability. По умолчанию
false. -
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
setChecked
Added in: v1.15Use locator-based Locator.setChecked() instead. Read more about locators.
Этот метод отмечает или снимает отметку с элемента, соответствующего selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение.
- Если элемент уже имеет правильное состояние, этот метод возвращается немедленно.
- Подождите проверки actionability на найденном элементе, если не установлен параметр setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.mouse(), чтобы щелкнуть в центре элемента.
- Убедитесь, что элемент теперь отмечен или снят. Если нет, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Usage
Page.setChecked(selector, checked);
Page.setChecked(selector, checked, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Отметить или снять отметку с флажка.
-
optionsPage.SetCheckedOptions(optional)-
Обойти проверки actionability. По умолчанию
false. -
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setPositionPosition (optional)#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods. -
Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его.
-
Returns
setInputFiles
Added before v1.9Use locator-based Locator.setInputFiles() instead. Read more about locators.
Устанавливает значение входного файла на эти пути файлов или файлы. Если некоторые из filePaths являются относительными путями, они разрешаются относительно текущего рабочего каталога. Для пустого массива очищает выбранные файлы. Для входов с атрибутом [webkitdirectory] поддерживается только один путь к каталогу.
Этот метод ожидает, что selector указывает на input element. Однако, если элемент находится внутри элемента <label>, который имеет ассоциированный control, будет использован контроль.
Usage
Page.setInputFiles(selector, files);
Page.setInputFiles(selector, files, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.SetInputFilesOptions(optional)-
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods.
-
Returns
tap
Added before v1.9Use locator-based Locator.tap() instead. Read more about locators.
Этот метод нажимает на элемент, соответствующий selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Подождите проверки actionability на найденном элементе, если не установлен параметр setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в вид, если это необходимо.
- Используйте Page.touchscreen(), чтобы нажать в центре элемента или в указанной setPosition.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Метод Page.tap() выбросит исключение, если параметр setHasTouch контекста браузера равен false.
Usage
Page.tap(selector);
Page.tap(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.TapOptions(optional)-
Обойти проверки actionability. По умолчанию
false. -
setModifiersList<enum KeyboardModifier { ALT, CONTROL, CONTROLORMETA, META, SHIFT }> (optional)#Модификаторные клавиши для нажатия. Гарантирует, что только эти модификаторы нажаты во время операции, а затем восстанавливает текущие модификаторы обратно. Если не указано, используются текущие нажатые модификаторы. "ControlOrMeta" разрешается в "Control" на Windows и Linux и в "Meta" на macOS.
-
setNoWaitAfterboolean (optional)#DeprecatedЭтот параметр не имеет эффекта.
Этот параметр не имеет эффекта.
-
setPositionPosition (optional)#Точка для использования относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout() methods. -
setTrialboolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно, чтобы дождаться, пока элемент будет готов к действию, не выполняя его. Обратите внимание, что клавиатурныеmodifiersбудут нажаты независимо отtrial, чтобы позволить тестировать элементы, которые видны только при нажатии этих клавиш.
-
Returns
textContent
Added before v1.9Use locator-based Locator.textContent() instead. Read more about locators.
Возвращает element.textContent.
Usage
Page.textContent(selector);
Page.textContent(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.TextContentOptions(optional)-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
type
Added before v1.9In most cases, you should use Locator.fill() instead. You only need to press keys one by one if there is special keyboard handling on the page - in this case use Locator.pressSequentially().
Отправляет событие keydown, keypress/input и keyup для каждого символа в тексте. page.type может использоваться для отправки детализированных событий клавиатуры. Для заполнения значений в полях формы используйте Page.fill().
Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте Keyboard.press().
Usage
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
Текст для ввода в фокусированный элемент.
-
optionsPage.TypeOptions(optional)-
Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
setNoWaitAfterboolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
uncheck
Added before v1.9Use locator-based Locator.uncheck() instead. Read more about locators.
Этот метод снимает отметку с элемента, соответствующего selector, выполняя следующие шаги:
- Найдите элемент, соответствующий selector. Если его нет, подождите, пока соответствующий элемент не будет добавлен в DOM.
- Убедитесь, что найденный элемент является флажком или радиокнопкой. Если нет, этот метод выбрасывает исключение. Если элемент уже снят с отметки, этот метод возвращается немедленно.
- Подождите, пока не будут выполнены проверки actionability на найденном элементе, если не установлена опция setForce. Если элемент отсоединяется во время проверок, все действие повторяется.
- Прокрутите элемент в видимую область, если это необходимо.
- Используйте Page.mouse(), чтобы щелкнуть в центре элемента.
- Убедитесь, что элемент теперь снят с отметки. Если нет, этот метод выбрасывает исключение.
Когда все шаги в совокупности не завершены в течение указанного setTimeout, этот метод выбрасывает TimeoutError. Передача нулевого тайм-аута отключает это.
Usage
Page.uncheck(selector);
Page.uncheck(selector, options);
Arguments
-
Селектор для поиска элемента. Если несколько элементов удовлетворяют селектору, будет использован первый.
-
optionsPage.UncheckOptions(optional)-
Нужно ли обходить проверки actionability. По умолчанию
false. -
setNoWaitAfterboolean (optional)#DeprecatedThis option has no effect.
This option has no effect.
-
setPositionPosition (optional) Added in: v1.11#Точка, используемая относительно верхнего левого угла рамки элемента. Если не указано, используется видимая точка элемента.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout(). -
setTrialboolean (optional) Added in: v1.11#Если установлено, этот метод выполняет только проверки actionability и пропускает действие. По умолчанию
false. Полезно для ожидания, пока элемент будет готов к действию без его выполнения.
-
Returns
waitForNavigation
Added before v1.9This method is inherently racy, please use Page.waitForURL() instead.
Ожидает навигации основного фрейма и возвращает ответ основного ресурса. В случае нескольких перенаправлений навигация будет разрешена с ответом последнего перенаправления. В случае навигации к другому якорю или навигации из-за использования History API, навигация будет разрешена с null.
Usage
Это разрешается, когда страница переходит на новый URL или перезагружается. Это полезно, когда вы выполняете код, который косвенно вызывает навигацию страницы. Например, цель клика имеет обработчик onclick, который вызывает навигацию из setTimeout. Рассмотрим этот пример:
// Метод возвращается после завершения навигации
Response response = page.waitForNavigation(() -> {
// Это действие вызывает навигацию после тайм-аута.
page.getByText("Navigate after timeout").click();
});
Использование History API для изменения URL считается навигацией.
Arguments
-
optionsPage.WaitForNavigationOptions(optional)-
Максимальное время операции в миллисекундах, по умолчанию 30 секунд, передайте
0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultNavigationTimeout(), BrowserContext.setDefaultTimeout(), Page.setDefaultNavigationTimeout() или Page.setDefaultTimeout(). -
setUrlString | Pattern | Predicate<String> (optional)#Глобальный шаблон, регулярное выражение или предикат, получающий [URL] для соответствия при ожидании навигации. Обратите внимание, что если параметр является строкой без символов подстановки, метод будет ожидать навигации к URL, который точно равен строке.
-
setWaitUntilenum WaitUntilState { LOAD, DOMCONTENTLOADED, NETWORKIDLE, COMMIT }(optional)#Когда считать операцию успешной, по умолчанию
load. События могут быть:'domcontentloaded'- считать операцию завершенной, когда событиеDOMContentLoadedбудет вызвано.'load'- считать операцию завершенной, когда событиеloadбудет вызвано.'networkidle'- НЕ РЕКОМЕНДУЕТСЯ считать операцию завершенной, когда нет сетевых соединений в течение как минимум500мс. Не используйте этот метод для тестирования, полагайтесь на веб-утверждения для оценки готовности.'commit'- считать операцию завершенной, когда сетевой ответ получен и документ начал загружаться.
-
-
callbackRunnable Added in: v1.9#Обратный вызов, выполняющий действие, вызывающее событие.
Returns
waitForSelector
Added before v1.9Use web assertions that assert visibility or a locator-based Locator.waitFor() instead. Read more about locators.
Возвращает, когда элемент, указанный селектором, удовлетворяет опции setState. Возвращает null, если ожидание для hidden или detached.
Playwright автоматически ожидает, пока элемент будет готов перед выполнением действия. Использование объектов Locator и веб-первых утверждений делает код свободным от ожидания селектора.
Ожидайте, пока selector не удовлетворит опцию setState (либо появится/исчезнет из DOM, либо станет видимым/скрытым). Если на момент вызова метода selector уже удовлетворяет условию, метод вернется немедленно. Если селектор не удовлетворяет условию в течение setTimeout миллисекунд, функция выбросит исключение.
Usage
Этот метод работает через навигации:
import com.microsoft.playwright.*;
public class Example {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
BrowserType chromium = playwright.chromium();
Browser browser = chromium.launch();
Page page = browser.newPage();
for (String currentURL : Arrays.asList("https://google.com", "https://bbc.com")) {
page.navigate(currentURL);
ElementHandle element = page.waitForSelector("img");
System.out.println("Loaded image: " + element.getAttribute("src"));
}
browser.close();
}
}
}
Arguments
-
Селектор для запроса.
-
optionsPage.WaitForSelectorOptions(optional)-
setStateenum WaitForSelectorState { ATTACHED, DETACHED, VISIBLE, HIDDEN }(optional)#По умолчанию
'visible'. Может быть:'attached'- ожидание, пока элемент будет присутствовать в DOM.'detached'- ожидание, пока элемент не будет присутствовать в DOM.'visible'- ожидание, пока элемент не будет иметь пустую рамку и не будетvisibility:hidden. Обратите внимание, что элемент без содержимого или сdisplay:noneимеет пустую рамку и не считается видимым.'hidden'- ожидание, пока элемент не будет отсоединен от DOM, или не будет иметь пустую рамку илиvisibility:hidden. Это противоположно опции'visible'.
-
setStrictboolean (optional) Added in: v1.14#Если true, вызов требует, чтобы селектор разрешался в один элемент. Если данный селектор разрешается в более чем один элемент, вызов выбрасывает исключение.
-
Максимальное время в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. Значение по умолчанию можно изменить, используя методы BrowserContext.setDefaultTimeout() или Page.setDefaultTimeout().
-
Returns
waitForTimeout
Added before v1.9Never wait for timeout in production. Tests that wait for time are inherently flaky. Use Locator actions and web assertions that wait automatically.
Ожидает заданный timeout в миллисекундах.
Обратите внимание, что page.waitForTimeout() следует использовать только для отладки. Тесты, использующие таймер в производстве, будут ненадежными. Используйте сигналы, такие как сетевые события, селекторы, становящиеся видимыми, и другие.
Usage
// ожидание 1 секунду
page.waitForTimeout(1000);
Arguments
Returns