Селен с явным ожиданием спокойствия продолжает выполняться после возврата истинного условия - PullRequest
0 голосов
/ 09 марта 2020

Selenium с явным ожиданием безмятежности продолжает выполняться после возвращения истинного условия

  • Итак, я пытаюсь дождаться отображения занятого оверлея

  • Элемент появляется в DOM только на короткое время около 3 секунд, а затем исчезает из DOM

  • Условие выполняется, когда System.out.println("Busy Overlay Displayed"); печатается

  • Что означает, что True возвращается

  • Но явное ожидание продолжает выполняться, поскольку System.out.println("Size Appear = " + driver.findElements(By.xpath("//table[contains(@class,'tg-loading')]")).size()); продолжает выполняться и размер печати = 0

  • Почему явное ожидание продолжает выполняться после выполнения условия True?

    public void waitForBusyOverlayDisplayed(WebDriver driver) {
    
        WebDriverWait wait = new WebDriverWait(driver, 5000);       
        wait.until(new ExpectedCondition<Boolean>() {
    
            @Override
            public Boolean apply(WebDriver driver) {
    
                System.out.println("Size Appear = " + driver.findElements(By.xpath("//table[contains(@class,'tg-loading')]")).size());
                if (driver.findElements(By.xpath("//table[contains(@class,'tg-loading')]")).size() == 1){
    
    
                    System.out.println("Busy Overlay Displayed");
                    return Boolean.TRUE;                                
                }                   
    
                return false;        
            }       
        }); 
    
    }
    
...