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

576*_*76i 4 python webautomation playwright playwright-python

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

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

month = page.querySelector('.day__month_btn').innerText()
Run Code Online (Sandbox Code Playgroud)

在此示例中,我正在读取日期选择器元素的月份值,并希望选择下个月。然后等待,直到月份发生变化。

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

page.querySelector('.next').click()
Run Code Online (Sandbox Code Playgroud)

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

一种 hacky 的方法是等待,即重复获取该值,直到它发生变化

while True:
    if page.querySelector('.day__month_btn').innerText() != month:
        break
    time.sleep(0.2)  
Run Code Online (Sandbox Code Playgroud)

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

有一个更好的方法吗?

har*_*ded 5

您可以使用waitForFunction

month = page.querySelector(".day__month_btn").innerText()
page.waitForFunction("document.querySelector('.day__month_btn').innerText() !== '" + month + "'")
Run Code Online (Sandbox Code Playgroud)