executeAsync
Обзор
Используйте команду executeAsync
, чтобы выполнить асинхронно указанный JavaScript-код на странице текущего выбранного фрейма.
Последним аргументом команды должен быть колбэк, который будет вызван, как только скрипт завершит свою работу. В качестве входного параметра команда передает в колбэк результат выполнения скрипта.
Аргумент script
определяет сценарий для выполнения в виде тела функции. Функция будет вызвана с предоставленным массивом args
, и доступ к значениям может быть получен через объект arguments
в указанном порядке. Последним аргументом всегда должна быть колбэк-функция, которая будет вызвана после того, как скрипт будет выполнен.
Аргументами могут быть любые JSON-примитивы, массивы или объекты JSON. Объекты JSON, которые определяют ссылку на WebElement, будут преобразованы в соответствующий элемент DOM. Аналогично, любые WebElements в результате скрипта будут возвращены клиенту в виде объектов WebElement JSON.
Исп ользование
await browser.executeAsync(script, arguments);
Параметры команды
Имя | Тип | Описание |
script | String или Function | Скрипт, который необходимо выполнить. |
arguments | Any | Аргументы для скрипта. Последним аргументом должна быть колбэк-функция, которая будет вызвана после того, как скрипт будет выполнен. |
Примеры использования
it("should execute async JavaScript on the page", async ({ browser }) => {
await browser.setTimeout({ script: 5000 });
const result = await browser.executeAsync(
function (a, b, c, d, done) {
// здесь мы в browser-контексте: доступа к консоли и к клиенту у нас нет
setTimeout(() => {
done(a + b + c + d);
}, 3000);
},
1,
2,
3,
4,
);
// здесь мы в node.js-контексте: доступ к консоли и к клиенту у нас есть
console.log(result); // выведет: 10
});