【解決方法】要素が表示されない場合にページの更新をタイムアウトする方法 C# と playwright.net

プログラミングQA


以下に、自動化スクリプトを使用して要素が表示されない場合にページを自動的に更新するスクリプトがあります。これは機能しますが、要素が表示されない場合は一定期間(たとえば20秒または数回)後に更新を停止したいので、テストは失敗するため、無限に更新されることはありません。 以下のコードは、要素が表示されている場合は機能しますが、要素が表示されていない場合は無限に更新され続けます。 それを解決する方法があれば教えてください。 ありがとう

C#
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 }); } 
while (!await Page.IsVisibleAsync("input[name='elementname']"))

私が試したこと:

以下のコードを試しましたが、要素が表示されない場合は無限に更新されます。

C#
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 }); } 
while (!await Page.IsVisibleAsync("input[name='elementname']"))

解決策 1

まず、これが頻繁に発生する場合は、タイムアウトを増やして、1 回のリロードが完了するまでの時間を長くすることを検討してください。
あなたの質問に答えるとして、増分カウントを追加し、それを使用して特定の回数のループの後に終了をトリガーします。次のようになります。

C#
int refreshCount = 0;
do {
    await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 });
    refreshCount++;
} 
while (!await Page.IsVisibleAsync("input[name='elementname']") && refreshCount < 5)

コメント

タイトルとURLをコピーしました