python+playwright 学习-87 高级功能-监听页面元素出现,执行回调函数

前言

当打开一个网站时,页面上可能会出现一个提示框之类的,它是自动弹出来的,我们并不知道它什么时候会出来。 所以可以写个方法去监听到它出来时,执行回调处理掉这个弹出框。 playwright 除了可以监听页面上的一些事件,最新的 v1.42 版本出了个高级的功能,可以监听页面上元素处于显示状态时,对它做处理。

使用场景

新方法page.add_locator_handler()注册一个回调,该回调将在指定元素可见时调用,并可能阻止Playwright操作。 回调可以消除覆盖。下面是一个在cookie对话框出现时关闭该对话框的示例。

使用示例

代码语言:javascript
复制
# Setup the handler.
page.add_locator_handler(
    page.get_by_role("heading", name="Hej! You are in control of your cookies."),
    lambda: page.get_by_role("button", name="Accept all").click(),
)
# Write the test as usual.
page.goto("https://www.ikea.com/")
page.get_by_role("link", name="Collection of blue and white").click()
expect(page.get_by_role("heading", name="Light and easy")).to_be_visible()