データ ソースのダッシュボード ビルドにログインするために、UI テストを実行しています。ページには、最初に「読み込み中」が表示され、次に「データを待っています」と表示され、次にデータが入力されます。
実際のデータが入力されるまで待ちたいので、まずプレイライト ロケーターを使用して「データ待ち」が表示されるまで待ちます。次に、無限ループを使用して、「データ待ち」の数をカウントし、カウントがいつ 0 になるかを確認します。
ただし、この戦略の 2 番目の部分は機能しません。ループを完全に無視しているようです。
async def open_dashboard(page, url):
await page.goto(url)
await page.locator("text=/Waiting\s*for/i").click() #I can see the snapshot has captured this page
try:
count = 1
while count > 0: # This section doesn't seem to work at all
rows = await page.locator("text=/Waiting\s*for/i")
count = await rows.count()
except Exception as e:
logger.info(e)
await page.screenshot(path="abc.png")