How to wait until an element is present in Selenium?

后端 未结 5 1601
情话喂你
情话喂你 2020-11-27 02:53

I\'m trying to make Selenium wait for an element that is dynamically added to the DOM after page load. Tried this:

fluentWait.until(ExpectedConditions.presen         


        
5条回答
  •  一生所求
    2020-11-27 03:43

    public WebElement fluientWaitforElement(WebElement element, int timoutSec, int pollingSec) {
    
        FluentWait fWait = new FluentWait(driver).withTimeout(timoutSec, TimeUnit.SECONDS)
            .pollingEvery(pollingSec, TimeUnit.SECONDS)
            .ignoring(NoSuchElementException.class, TimeoutException.class).ignoring(StaleElementReferenceException.class);
    
        for (int i = 0; i < 2; i++) {
            try {
                //fWait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//*[@id='reportmanager-wrapper']/div[1]/div[2]/ul/li/span[3]/i[@data-original--title='We are processing through trillions of data events, this insight may take more than 15 minutes to complete.']")));
            fWait.until(ExpectedConditions.visibilityOf(element));
            fWait.until(ExpectedConditions.elementToBeClickable(element));
            } catch (Exception e) {
    
            System.out.println("Element Not found trying again - " + element.toString().substring(70));
            e.printStackTrace();
    
            }
        }
    
        return element;
    
        }
    

提交回复
热议问题