使用适用于Python的Playwright,我如何等待字段/选择器结果更改

问题描述

使用Playwright for Python,我要等待内容的更改。

我可以获得这样的选择器的内容

month = page.querySelector('.day__month_btn').innerText()

在此示例中,我正在读取datepicker元素的月份值 并选择下个月。然后等待,直到月份改变。

要更改月份,我可以单击下个月图标

page.querySelector('.next').click()

我现在要等待点击被接受。

一个棘手的方法是反复获取值直到其更改

while True:
    if page.querySelector('.day__month_btn').innerText() != month:
        break
    time.sleep(0.2)  

在现实世界中,我还需要检查超时。

有更好的方法吗?

解决方法

您可以使用waitForFunction

month = page.querySelector(".day__month_btn").innerText()
page.waitForFunction("document.querySelector('.day__month_btn').innerText() !== '" + month + "'")