List of usage examples for org.openqa.selenium By className
public static By className(String className)
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; }