如何在 playwright 中运行自定义 js 函数

Posted

技术标签:

【中文标题】如何在 playwright 中运行自定义 js 函数【英文标题】:How to run a custom js function in playwright 【发布时间】:2020-11-23 00:11:09 【问题描述】:

?例如显示警报。我已经尝试过这种方法,但没有成功。

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

  await alert();
);

【问题讨论】:

看起来像堆栈溢出...alert fn 不会继续调用自己吗? @weltschmerz 不确定,我想如果你这么说的话。这只是一个例子。对此很陌生。也许这就是它不起作用的原因。可以分享一下解决方法吗? 好吧,首先,我认为您不需要任何 awaitasync 关键字,除了可能是第一个 await (而且您无论如何都用错了它们,因为您在函数声明中使用await)。所以基本上试着去掉page.evaluate调用中的所有asyncawait语句,再次运行它,让我知道你看到了什么。 【参考方案1】:

你会这样做:

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

但请记住,该警报在 javascript 浏览器世界中是阻塞的,并且会被 Playwright 自动解除。请参阅here 如何与他们互动(例如关闭)

【讨论】:

以上是关于如何在 playwright 中运行自定义 js 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Playwright.js 中检查页面上是不是存在元素

Playwright JS - 如果找不到元素/选择器,如何全局定义/更改超时?

playwright自定义浏览器设备时区经纬度userAgent注入脚本

如何配置 playwright-jest 以排除测试套件(规范)文件以进行运行?

Playwright入门

在 Playwright 中禁用 Javascript