你的代码对我来说一直有效。一旦你选择了其他字段,这些meses选项就会被填充,所以你可以使用
wait_for_function()
要等待月份填充,以避免出现竞争情况:
from playwright.sync_api import sync_playwright # 1.40.0
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("<Your URL>")
page.locator("[name='frmVisao:orgao']").select_option("Seção Judiciária do Sergipe")
page.locator("[name='frmVisao:edicao']").select_option("Administrativo")
page.locator("[name='frmVisao:periodo']").select_option("2021")
page.wait_for_function("""
document
.querySelectorAll('[name="frmVisao:meses"] option')
.length > 11
""")
page.locator('[name="frmVisao:meses"]').select_option("03")
page.screenshot(path="verify.png")
browser.close()
一个更精确(可能更好)的条件是封锁,直到3月份的确切选择可用:
page.wait_for_function("""
document.querySelector('[name="frmVisao:meses"] option[value="03"]')
""")