[英]Do/While infinitely loops issue c#
我正在自動與用戶必須手動刷新頁面 n 次(有時 3 或 5 甚至更長)的網站交互,以便按鈕出現在 web 頁面上。 為了克服這個問題,我創建了一個 do / while 循環,它應該刷新頁面,直到按鈕可見,以便可以單擊它。 問題是它不同步並無限循環。 我嘗試了下面的腳本,但它仍然沒有停止刷新。 知道如何讓它在元素可見后立即停止刷新嗎? 默認情況下,該元素是不可見的,因此用戶必須先刷新頁面。 刷新有效,但速度非常快,並且沒有足夠的時間檢查按鈕的可見性 state,也許這就是它進入無限循環的原因
int retries = 0;
bool isElementVisible = false;
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 });
isElementVisible = await Page.IsVisibleAsync("input[name='elementname']");
retries ++;
while (!isElementVisible)
您的代碼的問題是IsVisibleAsync
將立即解析為 false。 您可以使用WaitForSelectorAsync
等待一段時間的可見。 例如,5 秒:
int retries = 0;
bool isElementVisible = false;
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 });
try {
// The default State is Visible
await Page.WaitForSelectorAsync("input[name='elementname']", new(){ Timeout = 5000});
isElementVisible = true;
} catch(Exception ex) {
retries ++;
}
} while (!isElementVisible)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.