Я использую метод Кукловода page.waitForFunction()
:
await page.waitForFunction(`
(window.hero.x - 1 === ${x} || window.hero.x === ${x} || window.hero.x + 1 === ${x} || window.hero.x === ${x}) && (window.hero.y - 1 === ${y} || window.hero.y === ${y} || window.hero.y + 1 === ${y} || window.hero.y === ${y}) || window.hero.x === ${x} && window.hero.y === ${y}
`);
Работает, но выглядит ужасно. Я хочу изменить его на многострочный. В документах есть:
page.waitForFunction(pageFunction[, options[, ...args]])
pageFunction <function|string>
Функция для оценки в контексте браузера
Чтобы передать аргументы из node.js в предикат функции page.waitForFunction
:
const selector = '.foo';
await page.waitForFunction(selector => !!document.querySelector(selector), {}, selector);
Я пытался так:
console.log(x,y); // 24 42
await page.waitForFunction((x, y) => {
console.log(x, y); // undefined, undefined
if(x && y) {
return true;
}
});
но x
и y
, которые я пытаюсь передать, не определены. Что я делаю не так?