编剧:怎么等到页面没有动画了?

Playwright: how to wait until there is no animation on the page?

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

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

1.方案一:

首先,您也许可以确定最后加载的是哪个元素,然后再使用

page.waitForSelector('yourselector')

甚至等待多个选择器出现

page.waitForSelector('yourselector1','yourselector2')

2。解决方案 2

page.waitForLoadState('domcontentloaded')

因为

page.waitForLoadState('networkidle') 

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

如果给定的解决方案不适合您,您可以尝试使用定位器。

page.locator(selector[, options])

它有多个 api 像 locator.isDisabledlocator.waitFor([options])locator.isVisible([options])locator.frameLocator(selector) ......更多.

请在此处查看以下 link: https://playwright.dev/docs/api/class-locator