Example usage for org.openqa.selenium WebElement getAttribute

List of usage examples for org.openqa.selenium WebElement getAttribute

Introduction

In this page you can find the example usage for org.openqa.selenium WebElement getAttribute.

Prototype

String getAttribute(String name);

Source Link

Document

Get the value of the given attribute of the element.

Usage

From source file:com.hotwire.selenium.mobile.results.MobileHotelResultsPage.java

License:Open Source License

/**
 * Assert that the result set is sorted by the criteria by looking at the URL
 *//*w  w w. ja  v a 2  s . c o  m*/
public void assertSortSuccessful(String criteria) {
    new MobileHotelResultsPage(getWebDriver());
    ArrayList<Double> elementValues = new ArrayList<Double>();
    boolean sortAscending = false;
    if ("price".equalsIgnoreCase(criteria)) {
        sortAscending = (this.sortByPrice.getAttribute("class").contains("arrowUp")) ? true : false;
        for (WebElement element : this.resultRates) {
            elementValues.add(new Double(element.getText().replaceAll("[^0-9.]", "")));
        }
    } else if ("distance".equalsIgnoreCase(criteria)) {
        // Distance always sorted in ascending order.
        sortAscending = true;
        for (WebElement element : this.resultDistances) {
            String text = element.getText();
            elementValues.add(new Double(text.substring(text.indexOf("(") + 1, text.indexOf(" "))));
        }
    } else if ("star rating".equalsIgnoreCase(criteria)) {
        sortAscending = (this.sortByStarRating.getAttribute("class").contains("arrowUp")) ? true : false;
        for (WebElement element : this.resultRatings) {
            String starRating = element.getAttribute("title").trim();
            // Handle the case where there is no retail hero module on the results page
            if (starRating != null && !starRating.isEmpty()) {
                elementValues.add(new Double(starRating));
            }
        }
    } else if ("best value".equalsIgnoreCase(criteria)) {
        // All results on the page are sorted in ascending order by the best value index exposed via the
        // data attribute 'data-bv-index'
        sortAscending = true;
        for (WebElement element : this.bestValueResultContainers) {
            // Add in the rate for best value result.
            elementValues.add(Double.valueOf(element.getAttribute("data-bv-index")));
        }
    } else {
        throw new RuntimeException("Unrecognized sort criteria.");
    }

    if (elementValues.size() > 1) {
        assertThat(areValuesInListSorted(elementValues, sortAscending))
                .as("Expected " + ((!sortAscending) ? "descending" : "ascending")
                        + " ordered results to be true but got false instead")
                .isTrue();
    } else if (elementValues.isEmpty()) {
        throw new ZeroResultsTestException("0 results returned.");
    } else {
        // 1 result list is always sorted.
        LOGGER.info("1 result returned.");
    }
}

From source file:com.hotwire.test.steps.purchase.hotel.HotelPurchaseModelWebApp.java

License:Open Source License

@Override
public void verifyAllPaymentOptionsEnabled() {
    List<WebElement> payments = new HotelBillingOnePage(getWebdriverInstance()).getAllPaymentMethodElements();
    for (WebElement element : payments) {
        assertThat(element.isEnabled())//  w w  w  .ja v  a2 s  .c o  m
                .as("Expected " + element.getAttribute("id") + " to be enabled but it was not.").isTrue();
    }
}

From source file:com.hotwire.test.steps.purchase.hotel.HotelPurchaseModelWebApp.java

License:Open Source License

@Override
public void verifyCreditCardOnlyEnabled() {
    boolean isUnavailable = new HotelTripInsuranceFragment(getWebdriverInstance()).isTripInsuranceUnavailable();
    List<WebElement> payments = new HotelBillingOnePage(getWebdriverInstance()).getAllPaymentMethodElements();
    for (WebElement element : payments) {
        String id = element.getAttribute("id");
        if (id.contains("savedCreditCards") || id.contains("useNewCard") || id.contains("newCreditCard")) {
            assertThat(element.isEnabled()).as("Expected " + id + " to be enabled but it was not.").isTrue();
        } else {//  w  w  w  . ja v a 2 s .  co  m
            if (!isUnavailable) { // No use checking these if trip insurance
                // is not available.
                assertThat(element.isEnabled()).as("Expected " + id + " to be disabled but it was not.")
                        .isFalse();
            }
        }
    }
}

From source file:com.hotwire.test.steps.search.hotel.HotelSearchModelRowWebApp.java

License:Open Source License

@Override
public void verifyTripAdvisorInResults(boolean isVisible) {
    HotelResultsPage resultsPage = new HotelResultsPage(getWebdriverInstance());
    List<WebElement> resultsWithTripAdvisor = resultsPage.getSearchResultsFragment()
            .getResultsWithTripAdvisorRatings();

    if (resultsWithTripAdvisor.size() == 0) {
        throw new ZeroResultsTestException("0 results containing a Trip Advisor module.");
    }//from w w  w . java 2  s . com
    for (WebElement resultRating : resultsWithTripAdvisor) {
        LOGGER.info(
                "Verifiying Trip Advisor rating of " + resultRating.getAttribute("class") + " is displayed.");
        assertThat(resultRating.isDisplayed()).isTrue();
    }
}

From source file:com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentPositionTest.java

License:Apache License

/**
 * Expected?Actual?????????????<br>
 * ??????SET_EXPECTED?1??????<br>//from  www  .j ava 2  s.  co m
 * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * ?assertView???
 */
@Test
public void compareDifferentPositionInt() {
    driver.get(BASE_URL);

    // ACTUAL??????
    // ????
    if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
        final int expendHeight = 1;
        WebElement headerglobal = driver.findElement(By.id("headerglobal"));
        driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
    }

    List<CompareTarget> targets = new ArrayList<CompareTarget>();
    targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about")));
    assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
            new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
}

From source file:com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentPositionTest.java

License:Apache License

/**
 * Expected?Actual?????????movesTarget=true???<br>
 * ??????SET_EXPECTED?1??????<br>/*www.jav a 2  s .  c  o  m*/
 * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * ?assertView???
 */
@Test
public void compareDifferentPositionDoubleMovesTargetTrue() {
    driver.get(BASE_URL);

    // ACTUAL??????
    // ????
    if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
        final double expendHeight = 0.5;
        WebElement headerglobal = driver.findElement(By.id("headerglobal"));
        driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
    }

    List<CompareTarget> targets = new ArrayList<CompareTarget>();
    targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about"), null, true));
    assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
            new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
}

From source file:com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentPositionTest.java

License:Apache License

/**
 * Expected?Actual?????????movesTarget=false???<br>
 * ??????SET_EXPECTED?1??????<br>//from ww  w.  j a v a  2  s .c om
 * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * ?assertView?????????
 */
@Test
public void compareDifferentPositionDoubleMovesTargetFalse() {
    driver.get(BASE_URL);

    // ACTUAL??????
    // ????
    if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
        final double expendHeight = 0.5;
        WebElement headerglobal = driver.findElement(By.id("headerglobal"));
        driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
        //         thrown.expect(AssertionError.class);
    }

    List<CompareTarget> targets = new ArrayList<CompareTarget>();
    targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about"), null, false));
    assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
            new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
}

From source file:com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentSizeTest.java

License:Apache License

/**
 * Expected?Actual???????????????<br>
 * ??????SET_EXPECTED?1??????<br>//from w  w  w.j  ava 2  s.  co  m
 * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * ?assertView??????????
 */
//@Test
public void compareDifferentWidth() {
    driver.get(BASE_URL);

    // ACTUAL??????
    if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
        final int widthToShrink = 1;
        WebElement about = driver.findElement(By.id("about"));
        driver.executeJavaScript("document.getElementById('about').style.width = '"
                + (Integer.parseInt(about.getAttribute("clientWidth")) - widthToShrink) + "';");
        thrown.expect(AssertionError.class);
    }

    List<CompareTarget> targets = new ArrayList<CompareTarget>();
    targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about")));
    assertionView.assertView("compareDifferentWidth", targets);
}

From source file:com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentSizeTest.java

License:Apache License

/**
 * Expected?Actual????????????????<br>
 * ??????SET_EXPECTED?1??????<br>//w ww .ja v  a  2 s.c o m
 * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
 * ?assertView??????????
 */
@Test
public void compareDifferentHeight() {
    driver.get(BASE_URL);

    // ACTUAL??????
    if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
        final int heightToShrink = 1;
        WebElement about = driver.findElement(By.id("about"));
        driver.executeJavaScript("document.getElementById('about').style.width = '"
                + (Integer.parseInt(about.getAttribute("clientWidth")) - heightToShrink) + "';");
        thrown.expect(AssertionError.class);
    }

    List<CompareTarget> targets = new ArrayList<CompareTarget>();
    targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about")));
    assertionView.assertView("compareDifferentHeight", targets);
}

From source file:com.ibm.sbt.automation.core.environment.TestEnvironment.java

License:Open Source License

/**
 * Detect what type of authentication is being used
 * /*w w w. j av  a 2 s.co  m*/
 * @param baseTest
 * @param loginForm
 * @return {AuthType}
 */
public AuthType detectAuthType(BaseTest baseTest, WebElement loginForm) {
    // if results are available then no need to check for authentication
    if (baseTest.isResultsReady()) {
        logger.info("results are ready, no auth necessary");
        return AuthType.NONE;
    }

    // look for all variations of login form
    String basicLoginFormId = baseTest.getProperty(PROP_BASIC_LOGINFORMID);
    String oauth10LoginFormId = baseTest.getProperty(PROP_OAUTH10_LOGINFORMID);
    String[] loginFormIds = { basicLoginFormId, oauth10LoginFormId };
    String oauth20LoginFormXPath = baseTest.getProperty(PROP_OAUTH20_LOGINFORMXPATH);
    String[] loginFormXPathExprs = { oauth20LoginFormXPath };
    if (loginForm != null) {
        String loginFormId = loginForm.getAttribute("id");
        if (basicLoginFormId.equals(loginFormId)) {
            return AuthType.BASIC;
        } else if (oauth10LoginFormId.equals(loginFormId)) {
            return AuthType.OAUTH10;
        } else {
            // TODO handle multiple login form xpath exprs
            return AuthType.OAUTH20;
        }
    }
    return AuthType.NONE;
}