Python なので Pyppeteer。 puppeteer のJSでもほぼ同じ感じになるはず
エレメントが消えるまで待機するコードの紹介です。
from pyppeteer.browser import Browser
from pyppeteer.errors import TimeoutError
from pyppeteer.page import Page
async def _wait_no_exist_for_selector(page: Page, selector, timeout=30000):
for i in range(int(timeout / 100)):
try:
await page.waitForSelector(selector, timeout=100)
await asyncio.sleep(0.1)
continue
except TimeoutError:
return
raise TimeoutError(f'{selector} が消えなかった')
waitForSelector のタイムアウト値は、無かった時に使われる時間なので、もっと短くても良いかも(1とか)
あった時のポーリングの待ち時間は、その下の
await asyncio.sleep(0.1)
になる
コメント