将 Playwright 用于 Python,如何等待字段/选择器结果更改

Using Playwright for Python, how can I wait for a field / selector result to change

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

我可以得到一个select或者像这样

的内容
month = page.querySelector('.day__month_btn').innerText()

在这个例子中,我正在读取日期选择器元素的月份值 并希望下个月 select。然后等待,直到月份改变。

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

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

我现在想等到点击被接受。

等待的一种 hacky 方法是重复获取值直到它改变

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 + "'")