Как запустить пользовательскую функцию js в драматурге

Как я могу запустить пользовательскую функцию js в драматурге? Например, показать предупреждение. Я уже пробовал этот способ, но он не работал.

var url = await page.evaluate(async() => {
  await function alert() {
    alert("alert");
  }

  await alert();
});

person Roboman Robo    schedule 02.08.2020    source источник
comment
Похоже на переполнение стека... не будет ли alert fn продолжать вызывать себя?   -  person weltschmerz    schedule 02.08.2020
comment
@weltschmerz Не уверен, если ты так говоришь. Это просто для примера. Новое в этом. Может поэтому не работает. Можете ли вы поделиться исправлением?   -  person Roboman Robo    schedule 02.08.2020
comment
Ну, во-первых, я не думаю, что вам нужны какие-либо ключевые слова await и async, за исключением, может быть, самого первого await (и вы все равно используете их неправильно, так как вы используете await в объявлении функции). Итак, попробуйте избавиться от всех операторов async и await внутри вызова page.evaluate, запустите его снова и дайте мне знать, что вы видите.   -  person weltschmerz    schedule 03.08.2020


Ответы (1)


Вы бы просто сделали:

await page.evaluate(() => alert("alert"))

Но имейте в виду, что эти оповещения блокируются в мире браузера JavaScript и автоматически отклоняются Playwright. См. здесь, как с ними взаимодействовать (например, закрыть)

person pguardiario    schedule 03.08.2020