编剧:如何等到页面没有动画?

eee*_*eee 16 playwright

我试图弄清楚如何检查 Playwright 中的页面是否已完全加载。await page.waitForLoadState('networkidle');在 Javascript 密集的网站上并不总是适合我。我采取了截屏的方法base64,等待 100 毫秒,截取新的屏幕截图,然后比较它们是否相同。然而这似乎并不理想,有什么办法可以询问Playwright最后一个动画帧何时重绘?

Gaj*_*ije 30

有几个选项可能会对您有所帮助。

1、方案一:

首先,您可以确定最后加载哪个元素,然后继续

page.waitForSelector('yourselector')
Run Code Online (Sandbox Code Playgroud)

甚至等待多个选择器出现

page.waitForSelector('yourselector1','yourselector2')
Run Code Online (Sandbox Code Playgroud)

2.解决方案2

page.waitForLoadState('domcontentloaded')
Run Code Online (Sandbox Code Playgroud)

因为

page.waitForLoadState('networkidle') 
Run Code Online (Sandbox Code Playgroud)

默认情况下将等待网络事件,如果 0.5 秒没有任何网络流量,它会说,我不再需要等待。这就是为什么你可能会有随机行为。

  • 使用 page.goto() 时,您可以直接将其作为第二个参数传递:await page.goto(`/my-page`, { waitUntil: 'networkidle' })`。 (3认同)