簡體   English   中英

Selenium 顯式等待設置間隔時間

[英]Selenium explicit wait set interval time

在我的自動化腳本中,我使用顯式等待來處理等待時間

wait = new WebDriverWait(driver, Duration.ofSeconds(45000));
    
    public WebElement waitVisibility(By by) {
            return wait.until(ExpectedConditions.visibilityOfElementLocated(by));
        }

現在有時我得到一個錯誤元素未找到因為一些彈出消息出現的時間很短。

錯誤就像(嘗試 40 秒,間隔 500 毫秒)

我的問題是如何將拉動時間從 500 毫秒減少到 200 毫秒

如您所見, Selenium WebDriverWait默認設置為每 500 毫秒輪詢一次 DOM。 我們可以使用pollingEvery方法覆蓋此設置。
這可以通過以下方式完成:

public WebElement waitVisibility(By by) {
    WebDriverWait wait = new WebDriverWait(driver, 40);
    wait.pollingEvery(200, TimeUnit.MILLISECONDS);
    return wait.until(ExpectedConditions.visibilityOfElementLocated(by));
}

要配置以毫秒為單位的持續時間以在輪詢之間休眠,您可以使用WebDriverWait的以下構造函數

public WebDriverWait(WebDriver驅動,java.time.Duration超時,java.time.Duration睡眠)

Wait 將忽略默認情況下在“直到”條件下遇到(拋出)的 NotFoundException 實例,並立即傳播所有其他實例。 您可以通過調用 ignoring(exceptions to add) 將更多內容添加到忽略列表中。

參數:

  • driver - 要傳遞給預期條件的 WebDriver 實例
  • 超時 - 調用期望時的超時秒數
  • sleep - 輪詢之間休眠的持續時間(以毫秒為單位)。

執行:

wait = new WebDriverWait(driver, Duration.ofSeconds(45000), Duration.ofMilliSeconds(200));

    public WebElement waitVisibility(By by) {
        return wait.until(ExpectedConditions.visibilityOfElementLocated(by));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM