Example usage for org.openqa.selenium By className

List of usage examples for org.openqa.selenium By className

Introduction

In this page you can find the example usage for org.openqa.selenium By className.

Prototype

public static By className(String className) 

Source Link

Document

Find elements based on the value of the "class" attribute.

Usage

From source file:com.daarons.transfer.UploadTask.java

License:Apache License

@Override
protected Object call() throws Exception {
    initUploadTask();/*from   www . j a  v a2  s. c  o m*/

    acceptToS(); //put before login?

    String emailAddress = getTransferSettingsController().getEmailAddress();
    String password = getTransferSettingsController().getPassword();
    boolean loggedIn = false;
    if (!emailAddress.isEmpty() && !password.isEmpty()) {
        loggedIn = logIn(emailAddress, password);
    }

    Iterator<UploadTransferObject> i = uploadList.iterator();
    while (i.hasNext()) {
        UploadTransferObject uploadTransferObject = i.next();
        clickButtonToChooseEmailOrLink();
        Message message = uploadTransferObject.getMessage();
        boolean sendingEmail = false;
        boolean gettingLink = false;
        if (message != null) {
            clickEmailButton();
            inputMessage(message);
            sendingEmail = true;
        } else {
            clickLinkButton();
            gettingLink = true;
        }

        String uploadPassword = uploadTransferObject.getPassword();
        if (uploadPassword != null && loggedIn) {
            enterUploadPassword(uploadPassword);
        }

        clickButtonToChooseEmailOrLink();

        inputFilePath(uploadTransferObject.getUrl());
        clickTransferButtonWithText("Transfer");

        String downloadLink = null;
        int timeWaited = 0;
        boolean isUploadTimeAvailable = isUploadTimeAvailable(longWait);
        boolean isLinkAvailable = false;
        boolean isEmailSent = false;

        if (!isUploadTimeAvailable) {
            //check if the upload if finished. Maybe it was a small file and uploaded quickly.
            if (sendingEmail) {
                isEmailSent = isTransferButtonWithTextAvailable("Send another?", longWait);
            } else if (gettingLink) {
                isLinkAvailable = isLinkAvailable(smallWait);
            }

            //if upload isn't finished
            if (!isEmailSent && !isLinkAvailable) {
                //look for upload time again
                isUploadTimeAvailable = isUploadTimeAvailable(longWait);

                if (!isUploadTimeAvailable) {
                    log.error("Couldn't upload this file. Continuing to next file.");
                    TransferRecord transferRecord = createTransferRecord(uploadTransferObject, "Failed");
                    dao.addTransferRecord(transferRecord);
                    continue;
                }
            }
        }

        if (isUploadTimeAvailable) {
            int timeUntilUploadFinished = getUploadTime(smallWait);

            //create new webdriverwait based on upload time + some extra time 
            //just in case slow connection 
            WebDriverWait uploadWait = new WebDriverWait(driver, (timeUntilUploadFinished * 60) + (30 * 60));

            if (sendingEmail) {
                isEmailSent = isTransferButtonWithTextAvailable("Send another?", uploadWait);
            } else if (gettingLink) {
                isLinkAvailable = isLinkAvailable(uploadWait);
            }

            if (!isEmailSent && !isLinkAvailable) {
                log.error("The upload time is done, but the web element cannot be found");
                if (isUploadTimeAvailable(smallWait)) {
                    timeWaited += (timeUntilUploadFinished * 60) + (30 * 60);
                    timeUntilUploadFinished = getUploadTime(smallWait);
                    uploadWait = new WebDriverWait(driver, (timeUntilUploadFinished * 60) + (30 * 60));

                    //calculate time waited if there's a future failure
                    timeWaited += (timeUntilUploadFinished * 60) + (30 * 60);
                    timeWaited /= 60;//time waited in minutes for failure

                    if (sendingEmail) {
                        isEmailSent = isTransferButtonWithTextAvailable("Send another?", uploadWait);
                    } else if (gettingLink) {
                        isLinkAvailable = isLinkAvailable(uploadWait);
                    }

                    if (!isEmailSent && !isLinkAvailable) {
                        log.error("Couldn't upload this file. Continuing to next file.");
                        TransferRecord transferRecord = createTransferRecord(uploadTransferObject, "Failed");
                        dao.addTransferRecord(transferRecord);
                        continue;
                    }

                } else if (sendingEmail && !isTransferButtonWithTextAvailable("Send another?", smallWait)) {
                    log.error("Couldn't upload this file. Continuing to next file.");
                    TransferRecord transferRecord = createTransferRecord(uploadTransferObject, "Failed");
                    dao.addTransferRecord(transferRecord);
                    continue;
                } else if (gettingLink && !isLinkAvailable(smallWait)) {
                    log.error("Couldn't upload this file. Continuing to next file.");
                    TransferRecord transferRecord = createTransferRecord(uploadTransferObject, "Failed");
                    dao.addTransferRecord(transferRecord);
                    continue;
                }
            }
        }

        WebElement linkElement = null;
        if (gettingLink) {
            linkElement = smallWait
                    .until(ExpectedConditions.presenceOfElementLocated(By.className("transfer__textfield")));
            downloadLink = linkElement.getAttribute("value");
        }

        if (sendingEmail) {
            downloadLink = message.getTo().replaceAll(",", " ");
        }

        TransferRecord transferRecord = createTransferRecord(uploadTransferObject, downloadLink);

        dao.addTransferRecord(transferRecord);

        try {
            if (gettingLink) {
                linkElement.click();
                clickTransferButtonWithText("Ok");
            } else if (isEmailSent) {
                clickTransferButtonWithText("Send another?");
            }
            clickTransferButtonWithText("Continue");
            Thread.sleep(5000);
        } catch (Exception ex) {
            log.error("Couldn't click button. Uploading next file.", ex);
        }
    }

    if (loggedIn) {
        logOut();
        try {
            Thread.sleep(3000);
        } catch (InterruptedException ex) {
            log.error(ex);
        }
    }

    clearTableView("upload");
    driver.quit();

    return null;
}

From source file:com.daarons.transfer.UploadTask.java

License:Apache License

private void clickTransferButtonWithText(String text) throws Exception {
    if (isTransferButtonWithTextAvailable(text, longWait)) {
        WebElement transferButton = smallWait
                .until(ExpectedConditions.presenceOfElementLocated(By.className("transfer__button")));
        transferButton.click();/*w  ww  .j a v  a2 s.  c  om*/
    } else {
        throw new Exception("Button with text " + text + " does not exist");
    }
}

From source file:com.daarons.transfer.UploadTask.java

License:Apache License

private boolean isTransferButtonWithTextAvailable(String text, WebDriverWait wait) {
    return wait//from  w ww .j  a v a  2  s.co m
            .until(ExpectedConditions.textToBePresentInElementLocated(By.className("transfer__button"), text));
}

From source file:com.daarons.transfer.UploadTask.java

License:Apache License

private boolean isOkButtonClickable(WebDriverWait wait) {
    //checks to see if the Ok Button is ready to be clicked meaning upload is finished
    boolean isOkButtonClickable;
    try {// ww w. j  a v a  2 s . c o m
        isOkButtonClickable = wait.until((ExpectedCondition<Boolean>) (WebDriver driver2) -> !driver2
                .findElement(By.className("transfer__button")).getText().equals("Transfer")
                && !driver2.findElement(By.className("transfer__button")).getText().equals("Cancel"));
    } catch (Exception ex) {
        log.error(ex);
        isOkButtonClickable = false;
    }
    return isOkButtonClickable;
}

From source file:com.daarons.transfer.UploadTask.java

License:Apache License

private void logOut() {
    WebElement accountLink = longWait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(
            "body > div > div > nav > ul > li.nav__item.nav_item--expanded.nav__item--active > ul > li:nth-child(4) > a")));
    accountLink.click();/*from w  w w.  ja  v  a  2s  .  co m*/
    WebElement signOutButton = longWait
            .until(ExpectedConditions.presenceOfElementLocated(By.className("account__signout")));
    signOutButton.click();
}

From source file:com.denimgroup.threadfix.selenium.pages.ApplicationDetailPage.java

License:Mozilla Public License

public boolean isDuplicateScan() {
    sleep(1000);/*from w w w.  ja va  2s. c  om*/
    String s = "";
    for (int i = 0; i < 10; i++) {
        try {
            s = driver.findElementByClassName("in").findElements(By.className("alert-error")).get(1).getText();
        } catch (IndexOutOfBoundsException e) {
            sleep(500);
            continue;
        }
        break;
    }
    return s.contains("Scan file has already been uploaded.");
}

From source file:com.denimgroup.threadfix.selenium.pages.RemoteProvidersIndexPage.java

License:Mozilla Public License

public RemoteProvidersIndexPage closeModal() {
    driver.findElementByClassName("modal-footer").findElement(By.className("btn")).click();
    waitForInvisibleElement(driver.findElementByClassName("modal"));
    return new RemoteProvidersIndexPage(driver);
}

From source file:com.denimgroup.threadfix.selenium.pages.TeamIndexPage.java

License:Mozilla Public License

public int getNumAppRows(String teamName) {
    if (!(driver.findElementById("teamAppTableDiv" + (getIndex(teamName) + 1)).getText()
            .contains("No applications found."))) {
        return driver.findElementById("teamAppTable" + (getIndex(teamName) + 1))
                .findElements(By.className("app-row")).size();
    }// w w w  .  j  av  a  2 s.  com
    return 0;
}

From source file:com.denimgroup.threadfix.selenium.pages.TeamIndexPage.java

License:Mozilla Public License

public BasePage closeModal() {
    driver.findElementByClassName("modal-footer").findElement(By.className("btn")).click();
    return setPage();
}

From source file:com.denimgroup.threadfix.selenium.pages.UserIndexPage.java

License:Mozilla Public License

public UserIndexPage clickCancel(String name) {
    driver.findElementsByClassName("modal-footer").get(getIndex(name)).findElement(By.className("btn")).click();
    sleep(1000);//from  w w  w . ja  v a 2 s.  c  o m
    return new UserIndexPage(driver);
}