Example usage for org.openqa.selenium.support.ui ExpectedConditions visibilityOfElementLocated

List of usage examples for org.openqa.selenium.support.ui ExpectedConditions visibilityOfElementLocated

Introduction

In this page you can find the example usage for org.openqa.selenium.support.ui ExpectedConditions visibilityOfElementLocated.

Prototype

public static ExpectedCondition<WebElement> visibilityOfElementLocated(final By locator) 

Source Link

Document

An expectation for checking that an element is present on the DOM of a page and visible.

Usage

From source file:barChart1.BarChartDemo.java

License:Open Source License

/**
 * Starting point for the demonstration application.
 *
 * @param args  ignored.//from w w w .java 2 s . c o  m
 */
public static void main(String[] args) {

    // Demo to buy tickets to the EK 2016

    System.out.println("Hello UEFA 2016 !!!");

    statistics = "";

    JOptionPane.showMessageDialog(null, "Belgium versus Italy demo start");

    driver = new FirefoxDriver();
    wait = new WebDriverWait(driver, 500);

    //Open Home Page
    driver.manage().window().maximize();
    driver.get("http://www.uefa.com/");

    wait.until(ExpectedConditions.visibilityOfElementLocated(
            By.xpath("//div/header/nav/div/div/ul/li/a[text() = 'UEFA EURO 2016']")));

    driver.findElement(By.xpath("//div/header/nav/div/div/ul/li/a[text() = 'UEFA EURO 2016']")).click();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div//nav/div/div/ul/li/a[ text() = 'Teams']")));

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div//nav/div/div/ul/li/a[ text() = 'Matches']")))
            .click();

    wait.until(ExpectedConditions.visibilityOfElementLocated(
            By.xpath("//div/div//div//div/a[text() = 'Select your team and follow their EURO journey']")));

    driver.findElement(
            By.xpath("//div/div//div//div/a[text() = 'Select your team and follow their EURO journey']"))
            .click();

    wait2Secs();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div//ul/li/span[text()='Belgium']")));

    driver.findElement(By.xpath("//div/div/div//ul/li/span[text()='Belgium']")).click();

    // Belgium
    wait2Secs();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("(//div/table[1]/tbody/tr/td/div/a[text()='21.00'])[1]")));

    driver.findElement(By.xpath("(//div/table[1]/tbody/tr/td/div/a[text()='21.00'])[1]")).click();

    wait2Secs();

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a/span[text()='Pre-match']")));

    // Go to the statistics

    driver.get("http://www.uefa.com/uefaeuro/season=2016/statistics/index.html");

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a/span[text()='Teams']")));

    driver.findElement(By.xpath("//a/span[text()='Teams']")).click();

    // Look up the statistics for Belgium and Italy

    getOverviewStats("BE", "ITA", "Belgium", "Italy");

    wait.until(
            ExpectedConditions.visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Goals']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Goals']")).click();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Belgium");
    ;

    wait2Secs();

    // getGoalsStats("BE","ITA","Belgium","Italy");

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Attempts']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Attempts']")).click();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Belgium");
    ;

    wait2Secs();

    wait.until(
            ExpectedConditions.visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Passes']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Passes']")).click();

    wait2Secs();

    // Italy

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Italy");
    ;

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Overview']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Overview']")).click();

    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Italy");
    ;

    wait.until(
            ExpectedConditions.visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Goals']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Goals']")).click();

    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Italy");
    ;

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Attempts']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Attempts']")).click();

    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Italy");
    ;

    wait.until(
            ExpectedConditions.visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Passes']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Passes']")).click();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys("Italy");
    ;

    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

    JOptionPane.showMessageDialog(null, "Belgium versus Italy : \n" + statistics);

    BarChartDemo demo = new BarChartDemo("Belgium vs Italy");
    demo.pack();
    RefineryUtilities.centerFrameOnScreen(demo);
    demo.setVisible(true);

}

From source file:barChart1.BarChartDemo.java

License:Open Source License

public static String getOverviewStats(String country, String secondcountry, String countryName,
        String secondCountryName) {

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/ul/li/a[text()='Overview']")));

    driver.findElement(By.xpath("//div/div/div/ul/li/a[text()='Overview']")).click();

    wait.until(ExpectedConditions//  w w w.  j av  a  2  s .c  o m
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).sendKeys(countryName);
    ;

    wait2Secs();

    String matchesPlayed1 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[2]")).getText();

    String wins1 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[3]")).getText();

    String draws1 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[4]")).getText();

    String losses1 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[5]")).getText();

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).clear();

    wait2Secs();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']"))
            .sendKeys(secondCountryName);
    ;

    wait2Secs();

    // Italy

    String matchesPlayed2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[2]")).getText();

    String wins2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[3]")).getText();

    String draws2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[4]")).getText();

    String losses2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[5]")).getText();

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).clear();

    wait2Secs();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']"))
            .sendKeys(secondCountryName);
    ;

    wait2Secs();

    // Italy

    String matchesPlayed2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[2]")).getText();

    String wins2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[3]")).getText();

    String draws2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[4]")).getText();

    String losses2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[5]")).getText();

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']")).clear();

    wait2Secs();

    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.xpath("//div/div/div/div/input[@value='Search for a team']")));

    driver.findElement(By.xpath("//div/div/div/div/input[@value='Search for a team']"))
            .sendKeys(secondCountryName);
    ;

    wait2Secs();

    // Italy

    String matchesPlayed2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[2]")).getText();

    String wins2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[3]")).getText();

    String draws2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[4]")).getText();

    String losses2 = driver.findElement(By.xpath("//tbody/tr[@class='off odd']/td[5]")).getText();

    return statistics;
}

From source file:bg.pragmatic.lecture13mvn.waits.utils.WaitTool.java

License:Open Source License

/**
 * Wait for the element to be present in the DOM, and displayed on the page.
 * And returns the first WebElement using the given method.
 * //from w  w  w .ja  v  a2s.  c o  m
 * @param WebDriver
 *            The driver object to be used
 * @param By
 *            selector to find the element
 * @param int The time in seconds to wait until returning a failure
 * 
 * @return WebElement the first WebElement using the given method, or null
 *         (if the timeout is reached)
 */
public static WebElement waitForElement(WebDriver driver, final By by, int timeOutInSeconds) {

    WebElement element;
    try {
        // To use WebDriverWait(), we would have to nullify
        // implicitlyWait().
        // Because implicitlyWait time also set "driver.findElement()" wait
        // time.
        // info from:
        // https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/6VO_7IXylgY
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); // nullify
        // implicitlyWait()

        WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
        element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));

        driver.manage().timeouts().implicitlyWait(DEFAULT_WAIT_4_PAGE, TimeUnit.SECONDS); // reset
        // implicitlyWait
        return element; // return the element
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

From source file:br.com.mundotigre.scripts.WaitTool.java

License:Open Source License

/**
* Wait for the element to be present in the DOM, and displayed on the page. 
* And returns the first WebElement using the given method.
* 
* @param WebDriver   The driver object to be used 
* @param By   selector to find the element
* @param int   The time in seconds to wait until returning a failure
*
* @return WebElement   the first WebElement using the given method, or null (if the timeout is reached)
*///from   ww  w. java  2  s . c  o  m
public static WebElement waitForElement(WebDriver driver, final By by, int timeOutInSeconds) {
    WebElement element;
    try {
        //To use WebDriverWait(), we would have to nullify implicitlyWait(). 
        //Because implicitlyWait time also set "driver.findElement()" wait time.  
        //info from: https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/6VO_7IXylgY
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); //nullify implicitlyWait() 

        WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
        element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));

        driver.manage().timeouts().implicitlyWait(DEFAULT_WAIT_4_PAGE, TimeUnit.SECONDS); //reset implicitlyWait
        return element; //return the element   
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

From source file:br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebBase.java

License:Open Source License

/**
 * Mtodo que verifica em todas as classes se existe um componente Loading,
 * e se existir, ele sempre espera que este elemento desaparea antes de
 * continuar./*ww  w  .j a  v a2  s.co m*/
 */
@SuppressWarnings("unchecked")
public void waitLoading() {

    driver = (WebDriver) runner.getDriver();

    driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);

    if (!alreadySearchLoadingMap) {

        alreadySearchLoadingMap = true;

        Reflections reflections = new Reflections("");
        Set<Class<?>> annotatedClasses = reflections.getTypesAnnotatedWith(ScreenMap.class);

        for (Class<?> clazzI : annotatedClasses) {
            HashSet<Field> fields = (HashSet<Field>) ReflectionUtils.getAllFields(clazzI,
                    ReflectionUtils.withAnnotation(ElementMap.class),
                    ReflectionUtils.withTypeAssignableTo(Loading.class));

            if (fields.size() == 1) {
                for (Field field : fields) {
                    loadingMap = field.getAnnotation(ElementMap.class);
                }
            }
        }

    }

    if (loadingMap != null) {

        boolean existeLoading;

        try {
            // Verifica se existe o LOADING
            ExpectedConditions
                    .presenceOfElementLocated(
                            ByConverter.convert(loadingMap.locatorType(), loadingMap.locator()[0]))
                    .apply(driver);
            existeLoading = true;

            log.debug(message.getString("message-loading-visible"));
        } catch (Exception e) {
            existeLoading = false;
        }

        if (existeLoading) {
            // Fora esperar o loading aparecer quando o elemento utilizado
            // tem a propriedade forWaitLoading na anotao @ElementMap
            if (getElementMap() != null && getElementMap().forceWaitLoading()) {
                WebDriverWait wait = new WebDriverWait(getDriver(),
                        (BehaveConfig.getRunner_ScreenMaxWait() / 1000));
                wait.until(ExpectedConditions.visibilityOfElementLocated(
                        ByConverter.convert(loadingMap.locatorType(), loadingMap.locator()[0])));

                log.debug(message.getString("message-force-loading"));
            }

            // Aguardo o LOADING desaparecer!
            WebDriverWait wait = new WebDriverWait(getDriver(),
                    (BehaveConfig.getRunner_ScreenMaxWait() / 1000));
            wait.until(ExpectedConditions.invisibilityOfElementLocated(
                    ByConverter.convert(loadingMap.locatorType(), loadingMap.locator()[0])));

            log.debug(message.getString("message-loading-invisible"));
        }

    }

    driver.manage().timeouts().implicitlyWait(BehaveConfig.getRunner_ScreenMaxWait(), TimeUnit.MILLISECONDS);
}

From source file:br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebBase.java

License:Open Source License

private void waitVisibility(By by) {
    findFrameContainingElement(by);/*from w  w  w  . j  a  v a  2 s  .  co m*/

    WebDriverWait wait = new WebDriverWait(getDriver(), (BehaveConfig.getRunner_ScreenMaxWait() / 1000));
    wait.until(ExpectedConditions.visibilityOfElementLocated(by));
}

From source file:br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebBase.java

License:Open Source License

public void waitInvisible(int index) {
    final String locator = getLocatorWithParameters(getElementMap().locator()[index].toString());
    final By by = ByConverter.convert(getElementMap().locatorType(), locator);
    boolean testInvisibility = true;
    driver = (WebDriver) runner.getDriver();

    // Zera o tempo do driver, se no o implicity wait no funciona com o
    // tempo correto
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);

    try {//  www.j av a 2s.co m
        // Aguarda o elemento ficar visivel (MinWait)
        Long waitTimeVis = (BehaveConfig.getRunner_ScreenMinWait() / 1000);
        WebDriverWait waitVis = new WebDriverWait(driver, waitTimeVis);
        waitVis.until(ExpectedConditions.visibilityOfElementLocated(by));

        testInvisibility = true;
    } catch (org.openqa.selenium.TimeoutException e) {
        testInvisibility = false;
    }

    if (testInvisibility) {
        // Aguarda ele sumir
        Long waitTime = (BehaveConfig.getRunner_ScreenMaxWait() / 1000);
        WebDriverWait wait = new WebDriverWait(driver, waitTime);
        wait.until(ExpectedConditions.invisibilityOfElementLocated(by));
    }

    // Volta o tempo padro (maxWait) no driver
    driver.manage().timeouts().implicitlyWait(BehaveConfig.getRunner_ScreenMaxWait(), TimeUnit.MILLISECONDS);
}

From source file:budget.util.java

public static void waitForElement(WebDriverWait wait, By locator) {
    wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
}

From source file:businesscomponents.ReportcomparisonComponents1.java

public boolean waitForElement(WebDriver driver, By by, int time) {
    boolean flag;
    try {/*from w  ww  .j  ava2 s. c om*/
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        assertTrue((isElementPresent(driver, by)));
        WebDriverWait wait = new WebDriverWait(driver, time);
        WebElement myElement = wait.until(ExpectedConditions.visibilityOfElementLocated(by));
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        if (myElement != null)
            flag = true;
        else
            flag = false;

    } catch (Exception e) {
        System.out.println(e.toString());
        flag = false;
    }
    return flag;
}

From source file:businesscomponents.ReportcomparisonComponents1.java

public static boolean waitForElementForSecond(WebDriver driver, By by, int time) {
    boolean flag;
    try {/* w  w w.  j ava  2s  .  c  om*/
        WebDriverWait wait = new WebDriverWait(driver, time);
        WebElement myElement = wait.until(ExpectedConditions.visibilityOfElementLocated(by));
        driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
        if (myElement != null)
            flag = true;
        else
            flag = false;

    } catch (Exception e) {
        System.out.println(e.toString());
        flag = false;
    }
    return flag;
}