Example usage for org.openqa.selenium WebDriver findElements

List of usage examples for org.openqa.selenium WebDriver findElements

Introduction

In this page you can find the example usage for org.openqa.selenium WebDriver findElements.

Prototype

@Override
List<WebElement> findElements(By by);

Source Link

Document

Find all elements within the current page using the given mechanism.

Usage

From source file:testingGR.WaitTool.java

License:Open Source License

/**
 * Wait for the List<WebElement> to be present in the DOM, regardless of
 * being displayed or not. Returns all elements within the current page DOM.
 * //from www.jav  a 2  s.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 List<WebElement> all elements within the current page DOM, or
 *         null (if the timeout is reached)
 */
public static List<WebElement> waitForListElementsPresent(WebDriver driver, final By by, int timeOutInSeconds) {
    List<WebElement> elements;
    try {
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); // nullify
        // implicitlyWait()

        WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
        wait.until((new ExpectedCondition<Boolean>() {
            @Override
            public Boolean apply(WebDriver driverObject) {
                return areElementsPresent(driverObject, by);
            }
        }));

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

From source file:uk.co.iyana.asserts.html.test.HtmlPageTester.java

private static void testMultiValueElement(AssertElement assertElement, WebDriver driver) {
    // find the element
    List<WebElement> webElementList = driver.findElements(By.xpath(assertElement.getXpath()));

    if (assertElement.getCount() != null) {
        PrettyPrint.print("expected size: " + assertElement.getCount(), 3);
        PrettyPrint.print("actual size: " + webElementList.size(), 3);
        Assert.assertEquals(webElementList.size(), (int) assertElement.getCount(),
                "Did not find expected number of elements");
    }//from   w  w  w  . j  av  a2s  .  co m

    // check each of the attributes
    for (AssertAttribute assertAttribute : assertElement.getAssertAttributes()) {
        // collect the values
        List<String> values = new ArrayList<>();
        for (WebElement webElement : webElementList) {
            values.add(webElement.getAttribute(assertAttribute.getName()).trim());
        }

        PrettyPrint.print("Attribute: " + assertAttribute.getName(), 2);
        PrettyPrint.print("expected value: " + assertAttribute.getValues().toString(), 3);
        PrettyPrint.print("actual value: " + values.toString(), 3);

        Assert.assertEquals(values, assertAttribute.getValues(), "Attribute " + assertElement.getName() + "."
                + assertAttribute.getName() + " has incorrect value list");
    }
}

From source file:uk.co.iyana.asserts.html.test.HtmlPageTester.java

private static void testTables(PageTestData testData, WebDriver driver) {
    for (AssertTable assertTable : testData.getAssertTables()) {
        PrettyPrint.print("Table: " + assertTable.getName(), 1);

        // find the titles
        String titleXpath = assertTable.getXpath() + "//th";
        List<WebElement> thList = driver.findElements(By.xpath(titleXpath));
        List<String> titles = new ArrayList<>();
        for (WebElement th : thList) {
            titles.add(th.getText().trim());
        }/*from w  w w  . j  a va  2  s  .c  om*/
        PrettyPrint.print("Expected titles:" + assertTable.getTitles(), 2);
        PrettyPrint.print("Actual titles:" + titles, 2);
        Assert.assertEquals(titles, assertTable.getTitles(), "Titles mismatched");

    }
}

From source file:utilities.AccountHelper.java

public void bong88Login(WebDriver driver) {
    String username = "sjk36t300019";
    String password = "Qqq111";
    String homeUrl = "http://bong88.com";

    driver.get(homeUrl);/*  www.  j ava  2s .c  o  m*/
    if (driver.getCurrentUrl().contains("login888")) {
        List<WebElement> userFields = driver.findElements(By.xpath("//input[@id='txtID']"));
        List<WebElement> pwdFields = driver.findElements(By.xpath("//input[@id='txtPW']"));
        List<WebElement> loginBtns = driver
                .findElements(By.xpath("//div[@class='loginBtnPos']/a[@class='login_btn']"));
        if (userFields.size() > 0 && pwdFields.size() > 0 && loginBtns.size() > 0 && userFields.size() < 2
                && pwdFields.size() < 2 && loginBtns.size() < 2) {
            userFields.get(0).sendKeys(username);
            pwdFields.get(0).sendKeys(password);
            loginBtns.get(0).click();
        } else {
            helper.setLog("Username or Password or Login button not found.");
        }
    } else {
        helper.setLog("User seems to be logged in.");
    }
}

From source file:utils.WebCommonMethods.java

public static boolean isElementPresent(WebDriver driver, By by) {
    try {/*from  w  ww. ja  v a 2s.c  o  m*/
        return driver.findElements(by).size() > 0;
    } catch (Exception e) //NoSuchElementException
    {
        return false;
    }
}

From source file:utils.WebDriverUtils.java

private static List<WebElement> getElementsByXpath(WebDriver webDriver, String xpath) {
    return webDriver.findElements(By.xpath(xpath));
}

From source file:utils.WebDriverUtils.java

private static List<WebElement> getElementsByClassName(WebDriver webDriver, String className) {
    return webDriver.findElements(By.className(className));
}

From source file:utils.WebDriverUtils.java

public static int getCountOfNodes(WebDriver driver, String xpath) {
    return driver.findElements(By.xpath(xpath)).size();
}

From source file:wsattacker.sso.openid.attacker.evaluation.attack.KeyConfusionAttack.java

License:Open Source License

@Attack(number = 1)
private AttackResult performSecondVariantOfKeyConfusionAttack() {
    OpenIdServerConfiguration.getAttackerInstance().setInterceptIdPResponse(true);
    OpenIdServerConfiguration.getAttackerInstance().setMethodGet(false);

    OpenIdServerConfiguration.getAnalyzerInstance().setInterceptIdPResponse(true);
    OpenIdServerConfiguration.getAnalyzerInstance().setMethodGet(false);

    OpenIdServerConfiguration.getAttackerInstance().setPerformAttack(true);

    String victimIdp = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration().getBaseUrl();

    AttackParameter opEndpointParameter = keeper.getParameter("openid.op_endpoint");
    opEndpointParameter.setAttackValueUsedForSignatureComputation(true);
    opEndpointParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    opEndpointParameter.setAttackMethod(HttpMethod.GET);
    opEndpointParameter.setAttackValue(victimIdp);

    String victimIdentity = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration()
            .getIdentity();/*from  w w  w . j  a  v  a 2s  . com*/

    AttackParameter claimedIdParameter = keeper.getParameter("openid.claimed_id");
    claimedIdParameter.setAttackValueUsedForSignatureComputation(true);
    claimedIdParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    claimedIdParameter.setAttackMethod(HttpMethod.GET);
    claimedIdParameter.setAttackValue(victimIdentity);

    AttackParameter identityParameter = keeper.getParameter("openid.identity");
    identityParameter.setAttackValueUsedForSignatureComputation(true);
    identityParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    identityParameter.setAttackMethod(HttpMethod.GET);
    identityParameter.setAttackValue(victimIdentity);

    // include modified parameter in signature
    AttackParameter sigParameter = keeper.getParameter("openid.sig");
    sigParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    sigParameter.setAttackMethod(HttpMethod.GET);

    // copy log entries before login
    List<RequestLogEntry> logEntriesBeforeLogin = new ArrayList<>(RequestLogger.getInstance().getEntryList());

    LoginResult loginResultAttacker = serviceProvider.login(ServiceProvider.User.ATTACKER);

    WebDriver driver = SeleniumBrowser.getWebDriver();
    JavascriptExecutor jse = (JavascriptExecutor) driver;
    String url = serviceProvider.getUrl();
    jse.executeScript("var win = window.open('" + url + "');");

    List<String> windowhandles = new ArrayList<>(driver.getWindowHandles());
    driver.switchTo().window(windowhandles.get(1));

    LoginResult loginResultVictim = serviceProvider.login(ServiceProvider.User.VICTIM);

    driver.switchTo().window(windowhandles.get(0));

    List<WebElement> links = driver.findElements(By.tagName("a"));
    links.get(1).click();

    /* determines the log entries of the current login procedure:
       logEntries = logEntriesAfterLogin - logEntriesBeforeLogin
       (subtraction of sets) */
    List<RequestLogEntry> logEntriesAfterLogin = RequestLogger.getInstance().getEntryList();
    List<RequestLogEntry> logEntries = (List<RequestLogEntry>) CollectionUtils.subtract(logEntriesAfterLogin,
            logEntriesBeforeLogin);

    // invert order of log - should be chronological
    Collections.reverse(logEntries);

    loginResultAttacker.setScreenshot(SeleniumBrowser.takeScreenshot());
    loginResultAttacker.setLogEntries(logEntries);

    boolean success = serviceProvider.determineAuthenticatedUser(driver.getPageSource(),
            driver.getCurrentUrl()) == User.VICTIM;
    Result result = success ? Result.SUCCESS : Result.FAILURE;
    Interpretation interpretation = success ? Interpretation.CRITICAL : Interpretation.PREVENTED;

    if (loginResultAttacker.hasDirectVerification()) {
        result = Result.NOT_PERFORMABLE;
        interpretation = Interpretation.NEUTRAL;
    }

    assert isSignatureValid(loginResultAttacker) : "Signature is not valid!";

    // close second window
    driver.switchTo().window(windowhandles.get(1)).close();
    driver.switchTo().window(windowhandles.get(0));

    return new AttackResult("Second Variant of Key Confusion", loginResultAttacker, result, interpretation);
}