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:bst.cpo.automation.dm.actions.SystemOverview_Actions.java

public boolean Is_Open_Properties_Panel() {
    //right-panel, open after clicking search results email link.
    try {/*from w  w w .ja  va 2  s  . co  m*/
        Thread.sleep(500); //Was getting false positives (TestNG was faster than UI changes)
        WebElement element = DMDriver.findElement(By.className("properties-panel"));
        if (element.isDisplayed()) {
            return true;
        }
        return false;
    } catch (Exception e) {
        logThis("Exception during test occurred : " + e.getMessage());
    }
    return false;
}

From source file:budget.WebDriverManager.java

private static void runQueryWF(WebDriver driver, WebDriverWait wait, int account) {
    String date;//from  w  w  w.  j  a v a  2s. c om
    String Analytics;
    String Category;
    Double amount;
    String accountName = getAccountName(stmt, account);

    //Selecting and wait for certain account page
    if (account != 4) {
        new Select(driver.findElement(By.id("accountDropdown"))).selectByIndex(account - 4);
        driver.findElement(By.name("accountselection")).click();
    }
    wait.until(ExpectedConditions.textToBePresentInElement(driver.findElement(By.className("moremarginbottom")),
            accountName));

    //Gatherng total amount
    if (account == 6) {
        String limitStr = driver.findElement(By.xpath("//table[@id='balancedetailstable']/tbody/tr/td"))
                .getText();
        String balanceStr = driver.findElement(By.xpath("//table[@id='balancedetailstable']/tbody/tr[3]/td"))
                .getText();
        //amount = convertStringAmountToDouble(balanceStr) - convertStringAmountToDouble(limitStr);
        amount = convertStringAmountToDouble(balanceStr); //just for SECURE CARD
    } else {
        amount = convertStringAmountToDouble(
                driver.findElement(By.className("availableBalanceTotalAmount")).getText());
    }
    addTotal(stmt, getTimestamp(), account, amount, taLog);

    //Gathering transactinos
    if (account == 6) {
        String strAmount;
        driver.findElement(By.id("a.creditcardtempauth")).click();
        waitForElement(wait, By.xpath("//tbody[@id='tempAuthSection']/tr"));
        List<WebElement> rows = driver.findElements(By.xpath("//tbody[@id='tempAuthSection']/tr"));
        for (WebElement row : rows) {
            if (!"You have no temporary authorizations for this account.".equals(row.getText())) {
                date = rotateDate(row.findElement(By.className("rowhead")).getText(), "mm/dd/yy");
                Analytics = prepareTextForQuery(row.findElement(By.className("text")).getText());
                strAmount = row.findElements(By.className("amount")).get(0).getText();
                if ("+".equals(strAmount.substring(0, 1))) {
                    amount = convertStringAmountToDouble(strAmount);
                } else {
                    amount = -convertStringAmountToDouble(strAmount);
                }
                addTransaction(true, stmt, date, account, "", Analytics, amount, true, taLog);
            }
        }
        rows = driver.findElements(By.xpath("//table[@id='CreditCardTransactionTable']/tbody[4]/tr"));
        for (WebElement row : rows) {
            if (row.findElements(By.className("rowhead")).size() == 1) {
                if (!"".equals(row.findElement(By.className("rowhead")).getText())) {
                    date = rotateDate(row.findElement(By.className("rowhead")).getText(), "mm/dd/yy");
                    WebElement cell = row.findElement(By.className("text"));
                    Analytics = prepareTextForQuery(cell.findElement(By.xpath("span")).getText());
                    strAmount = row.findElements(By.className("amount")).get(0).getText();
                    if ("+".equals(strAmount.substring(0, 1))) {
                        amount = convertStringAmountToDouble(strAmount);
                    } else {
                        amount = -convertStringAmountToDouble(strAmount);
                    }
                    if (amount > 0) {
                        Category = "";
                    } else {
                        cell.findElement(By.className("detailsSection")).click();
                        waitForElement(wait, By.xpath("//table[@id='expandCollapseTable']/tbody/tr[2]/td[2]"));
                        Category = cell
                                .findElement(By.xpath("//table[@id='expandCollapseTable']/tbody/tr[2]/td[2]"))
                                .getText();
                    }
                    addTransaction(true, stmt, date, account, Category, Analytics, amount, false, taLog);
                }
            }
        }
    } else {
        driver.findElement(By.id("timeFilter")).click();
        new Select(driver.findElement(By.id("timeFilter"))).selectByVisibleText("Date Range");
        waitAndClick(driver, wait, By.name("Submit"));

        int itemsOnPage;
        if (driver.findElements(By.className("emdisclosure")).size() == 1) {
            itemsOnPage = Integer.parseInt(driver.findElement(By.className("emdisclosure")).getText()
                    .replace("(", "").replace(" transactions per page)", ""));
        } else {
            itemsOnPage = 0;
        }
        int itemsCounter;
        Boolean isPending = false;
        List<WebElement> lstAmounts;
        do {
            itemsCounter = 0;
            List<WebElement> rows = driver
                    .findElements(By.xpath("//table[@id='DDATransactionTable']/tbody/tr"));
            for (WebElement row : rows) {
                if (row.findElement(By.className("text")).getText().contains("Pending transactions")) {
                    isPending = true;
                }
                if (row.findElement(By.className("text")).getText().contains("Posted Transactions")) {
                    isPending = false;
                }

                if (row.findElements(By.className("rowhead")).size() == 1) {
                    date = rotateDate(row.findElement(By.className("rowhead")).getText(), "mm/dd/yy");
                    Analytics = prepareTextForQuery(row.findElement(By.className("text")).getText());
                    lstAmounts = row.findElements(By.className("amount"));
                    if (!" ".equals(lstAmounts.get(0).getText())) {
                        amount = convertStringAmountToDouble(lstAmounts.get(0).getText());
                    }
                    if (!" ".equals(lstAmounts.get(1).getText())) {
                        amount = -convertStringAmountToDouble(lstAmounts.get(1).getText());
                    }

                    addTransaction(true, stmt, date, account, "", Analytics, amount, isPending, taLog);
                    itemsCounter++;
                }
            }
            if (itemsCounter == itemsOnPage) {
                driver.findElement(By.linkText("Next >")).click();
            }
        } while (itemsCounter == itemsOnPage);
    }
}

From source file:budget.WebDriverManager.java

private static void refreshAccountsAmEx() {
    int attempts = 3;
    int attempt = 1;
    Boolean isDownloaded = false;
    List<String> credentials = getCredentials(7);

    while ((attempt <= attempts) && !isDownloaded) {
        try {/*w  ww  . jav  a  2 s  . c  o m*/
            driver = new FirefoxDriver();
            driver.manage().window().setPosition(new Point(-2000, 0));
            wait = new WebDriverWait(driver, timeout);
            java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit")
                    .setLevel(java.util.logging.Level.OFF);
            java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);

            driver.get("Http://www.americanexpress.com");
            driver.findElement(By.id("Username")).clear();
            driver.findElement(By.id("Username")).sendKeys(credentials.get(0));
            driver.findElement(By.id("Password")).clear();
            driver.findElement(By.id("Password")).sendKeys(credentials.get(1));
            driver.findElement(By.id("loginLink")).click();

            //Total amount       
            waitAndClick(driver, wait, By.id("avlbleCreditAsterick"));
            waitForElement(wait, By.id("availCreditValue"));
            String balanceStr = driver.findElement(By.id("availCreditValue")).getText();
            String limitStr = driver.findElement(By.id("ttlCreditValue")).getText();
            double amount = convertStringAmountToDouble(balanceStr) - convertStringAmountToDouble(limitStr);
            addTotal(stmt, getTimestamp(), 7, amount, taLog);

            //Transactions
            waitAndClick(driver, wait, By.id("MYCA_PC_Statements2"));
            waitAndClick(driver, wait, By.id("expandTP"));
            waitAndClick(driver, wait, By.id("anon_7"));//January 1 to Present
            wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("expandTP"))));

            //Pending transactions
            driver.findElement(By.id("recentTrans")).click();
            waitForElement(wait, By.className("pendingetd-helptxt"));
            runQueryAmEx(driver, wait, true);

            //Posted transactions
            runQueryAmEx(driver, wait, false);

            driver.findElement(By.id("iNLogBtn")).click();
            driver.quit();

            isDownloaded = true;
        } catch (Exception ex) {
            driver.quit();
            trace(ex.getMessage(), taLog);
            clearBatch(stmt);
            attempt++;
        }
        ;
    }
    trace((isDownloaded ? "Downloaded" : "Not downloaded") + " from " + attempt
            + ((attempt == 1) ? " attempt" : " attemps"), taLog);

    //Execution
    executeBatch(stmt, taLog);
}

From source file:budget.WebDriverManager.java

private static void runQueryAmEx(WebDriver driver, WebDriverWait wait, Boolean isPending) {
    String date;//  w  ww. j a  va 2s  .co m
    String Analytics;
    String Category;
    Double amount;

    List<WebElement> rows = driver.findElements(By.className((isPending) ? "pending-trans" : "posted-trans"));
    for (WebElement row : rows) {
        date = rotateDate(row.findElement(By.className("colDate")).getText().replace("\n*", ""), "MMMM\ndd");
        Analytics = prepareTextForQuery(row.findElement(By.className("desc-trans")).getText());
        amount = -convertStringAmountToDouble(row.findElement(By.className("colAmmount")).getText());
        if (amount < 0) {
            row.findElement(By.className("colPlus")).click();
            sleep(sleepTime);
            wait.until(ExpectedConditions.elementToBeClickable(row.findElement(By.className("printLink"))));
            Category = prepareTextForQuery(row.findElement(By.className("mobl_spanAddress")).getText());
            row.findElement(By.className("colPlus")).click();
        } else {
            Category = "";
        }
        addTransaction(true, stmt, date, 7, Category, Analytics, amount, isPending, taLog);
    }
}

From source file:Buildings.Building.java

public int[] upgradeResources() {

    int resources[] = new int[5];

    village.getAcc().getDriver().get(village.getLink());
    village.getAcc().getDriver().get(link);

    try {/*from  ww w  .  j  a  v a  2 s .com*/

        WebElement e = village.getAcc().getDriver().findElement(By.className("showCosts"));

        resources[0] = Integer.parseInt(e.findElement(By.cssSelector("span[class='resources r1']")).getText());
        resources[1] = Integer.parseInt(e.findElement(By.cssSelector("span[class='resources r2']")).getText());
        resources[2] = Integer.parseInt(e.findElement(By.cssSelector("span[class='resources r3']")).getText());
        resources[3] = Integer.parseInt(e.findElement(By.cssSelector("span[class='resources r4']")).getText());
        resources[4] = Integer.parseInt(e.findElement(By.cssSelector("span[class='resources r5']")).getText());

        return resources;

    } catch (Exception ex) {

    }

    return null;
}

From source file:Buildings.Building.java

public int upgradeTime() {
    int time = 0;
    village.getAcc().getDriver().get(village.getLink());
    village.getAcc().getDriver().get(link);
    WebElement e = village.getAcc().getDriver().findElement(By.className("showCosts"));
    String s = e.findElement(By.cssSelector("span[class='clocks']")).getText();
    String[] values = s.split(":");

    time += Integer.parseInt(values[0]) * 3600;
    time += Integer.parseInt(values[1]) * 60;
    time += Integer.parseInt(values[2]);
    return time;//  w ww  .j ava 2s  . c  o m
}

From source file:ca.nrc.cadc.search.integration.SearchResultsPage.java

License:Open Source License

<T extends AbstractTestWebPage> T clickPreview(final String windowName, final Class<T> pageClass)
        throws Exception {
    click(By.className("preview_tooltip_link"));

    final Class[] constructorArgTypes = new Class[] { WebDriver.class };
    final Constructor<T> constructor = pageClass.getConstructor(constructorArgTypes);
    return constructor.newInstance(selectWindow(windowName));
}

From source file:ca.nrc.cadc.UserStorageBrowserPage.java

License:Open Source License

public UserStorageBrowserPage(final WebDriver driver) throws Exception {
    super(driver);
    this.driver = driver;

    // The beacon-progress bar displays "Transferring Data" while it's loading
    // the page. Firefox doesn't display whole list until the bar is green, and
    // that text is gone. Could be this test isn't sufficient but it works
    // to have intTestFirefox not fail.
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.textToBe(By.className("beacon-progress"), ""));

    PageFactory.initElements(driver, this);
}

From source file:cc.gospy.example.zhihu.ZhihuUserSpider.java

License:Apache License

public static void main(String[] args) {
    String startUrl = "selenium://https://www.zhihu.com/people/giantchen/following?page=1";
    String chromeDriverPath = "D:/Program Files/Chrome Driver/chromedriver.exe";

    // a demo of using selenium
    Gospy.custom()/* w  w w.  j  av  a2  s  . c  o m*/
            .setScheduler(Schedulers.VerifiableScheduler.custom().setPendingTimeInSeconds(300)
                    .setAutoExit(false).build())
            .addFetcher(Fetchers.TransparentFetcher.custom().convertHttpTaskToSelenium().build())
            .addProcessor(Processors.SeleniumProcessor.custom().setDriver(Browser.Chrome, chromeDriverPath)
                    .setWebDriverExecutor((page, driver) -> {
                        Collection<Task> newTasks = new HashSet<>();
                        boolean visited = false;
                        while (!visited) {
                            try {
                                WebElement nextPageButton = driver
                                        .findElement(By.className("PaginationButton-next"));
                                while (nextPageButton.isDisplayed()) {
                                    nextPageButton.click();
                                    while (true) {
                                        Thread.sleep(1000);
                                        try {
                                            if (driver.findElement(By.className("UserLink-link")).isEnabled()) {
                                                visited = true;
                                                break;
                                            }
                                        } catch (Exception e) {
                                        }
                                    }
                                    Thread.sleep(1000);
                                    List<WebElement> elements = driver.findElements(By.xpath(
                                            "//*[@id='Profile-following']/div[2]/div/div/div/div[2]/h2/div/span/div/div/a"));
                                    elements.forEach(e -> {
                                        Task newTask = new Task("selenium://"
                                                + e.getAttribute("href").concat("/following?page=1"));
                                        newTask.setDepth(page.getTask().getDepth() + 1);
                                        System.out
                                                .println("find " + e.getText() + "\t" + e.getAttribute("href"));
                                        newTasks.add(newTask);
                                    });
                                }
                            } catch (Exception e) {
                            }
                        }
                        User user = new User();
                        user.setDistance(page.getTask().getDepth());
                        user.setUsername(driver.findElement(By.className("ProfileHeader-name")).getText());
                        WebElement detailButton;
                        try {
                            detailButton = driver.findElement(
                                    By.xpath("//*[@id='ProfileHeader']/div/div[2]/div/div[2]/div[3]/button"));
                            detailButton.click();
                        } catch (NoSuchElementException e) {
                            return new Result<>(newTasks, user);
                        }
                        while (!driver.findElement(By.className("ProfileHeader-detail")).isDisplayed())
                            ;
                        for (WebElement e : driver.findElements(By.xpath(
                                "//*[@id='ProfileHeader']/div/div[2]/div/div[2]/div[2]/span/div/div/span"))) {
                            switch (e.getText().trim()) {
                            case "?":
                                user.setResidence(e.findElement(By.xpath("./../div/span")).getText());
                                break;
                            case "":
                                user.setIndustry(e.findElement(By.xpath("./../div")).getText());
                                break;
                            case "??":
                                StringBuffer buffer = new StringBuffer();
                                e.findElements(By.xpath("./../div/div")).forEach(webElement -> {
                                    buffer.append(webElement.getText()).append("\t");
                                });
                                user.setJobs(buffer.toString());
                                break;
                            case "?":
                                buffer = new StringBuffer();
                                e.findElements(By.xpath("./../div/div")).forEach(webElement -> {
                                    buffer.append(webElement.getText()).append("\t");
                                });
                                user.setEducations(
                                        buffer.length() > 1 ? buffer.substring(0, buffer.length() - 1) : null);
                                break;
                            case "":
                                user.setIntro(
                                        e.findElement(By.xpath("./../div")).getText().replaceAll("\n", " "));
                                break;
                            default:
                                System.err.println("unknown detail [" + e.getText() + "]");
                            }
                        }
                        return new Result<>(newTasks, user);
                    }).setTaskFilter(TaskFilter.SELENIUM).build())
            .setExceptionHandler((throwable, task, page) -> {
                if (throwable.getCause() != null
                        && (throwable.getCause().getClass() == NoSuchWindowException.class
                                || throwable.getCause().getClass() == WebDriverException.class)) {
                    System.out.println("Browser is closed, exit now!");
                    System.exit(0);
                }
                throwable.printStackTrace();
                if (task != null) {
                    if (!task.getUrl().startsWith("selenium://")) {
                        task.setUrl("selenium://".concat(task.getUrl()));
                        System.err.println("Retry " + task);
                        return Arrays.asList(task);
                    }
                }
                return null;
            }).addPipeline(Pipelines.ConsolePipeline.getDefault()).build().addTask(new Task(startUrl)).start();
}

From source file:ch.vorburger.mifos.wiki.ZWikiScraper.java

License:Apache License

List<WikiNode> getContents() {
    List<WikiNode> rootNodes = new LinkedList<ZWikiScraper.WikiNode>();

    wd.get(wikiBaseURL + "/FrontPage/contents");
    WebElement all = wd.findElement(By.className("formcontent"));
    WebElement tree = all.findElement(By.tagName("ul"));
    rootNodes.addAll(ulToNodes(tree, null));

    WebElement singletonFlatList = all.findElement(By.tagName("div")).findElement(By.tagName("ul"));
    rootNodes.addAll(ulToNodes(singletonFlatList, null));

    return rootNodes;
}