List of usage examples for org.openqa.selenium WebElement findElements
@Override List<WebElement> findElements(By by);
From source file:com.jaeksoft.searchlib.crawler.web.spider.ClickCapture.java
License:Open Source License
private boolean locateAimgClickCapture(WebElement aElement) { if (!aElement.isDisplayed()) return false; String ahref = aElement.getAttribute("href"); List<WebElement> imgElements = aElement.findElements(By.cssSelector("img")); if (imgElements == null) return false; for (WebElement imgElement : imgElements) { if (!imgElement.isDisplayed()) continue; imgSrc = imgElement.getAttribute("src"); }//w w w . ja va2 s . c om anchorHref = ahref; return true; }
From source file:com.jaeksoft.searchlib.crawler.web.spider.ClickCapture.java
License:Open Source License
private boolean locateElement(BrowserDriver<?> browserDriver, WebElement webElement) throws SearchLibException, IOException { By by = By.cssSelector("a"); List<WebElement> aElements = webElement == null ? browserDriver.locateBy(by) : webElement.findElements(by); if (locateAimgClickCapture(aElements)) return true; by = By.cssSelector("embed"); List<WebElement> embedElements = webElement == null ? browserDriver.locateBy(by) : webElement.findElements(by); if (locateEmbedClickCapture(embedElements)) return true; by = By.cssSelector("object > object"); List<WebElement> objectElements = webElement == null ? browserDriver.locateBy(by) : webElement.findElements(by); if (locateEmbedClickCapture(objectElements)) return true; by = By.tagName("iframe"); List<WebElement> iFrameElements = webElement == null ? browserDriver.locateBy(by) : webElement.findElements(by); if (locateIFrame(browserDriver, iFrameElements)) return true; return false; }
From source file:com.liferay.faces.bridge.test.integration.issue.JSFSPEC_1433PortletTester.java
License:Open Source License
private String getFailedComponents(BrowserDriver browserDriver) { // TECHNICAL NOTE: Ensure that the components' "name" attributes have been removed. List<WebElement> uiInputComponentElements = browserDriver .findElementsByXpath(UI_INPUT_COMPONENT_ELEMENTS_XPATH); Assert.assertFalse(uiInputComponentElements.isEmpty()); WaitingAsserter waitingAsserter = getWaitingAsserter(); for (WebElement uiInputComponentElement : uiInputComponentElements) { waitingAsserter.assertTrue(new NameAttributeRemoved(uiInputComponentElement)); }//from w w w . j a v a2 s . c o m // Click the *Run Test* button. String runTestButtonXpath = "(//button[contains(text(),'Run Test')]|//input[contains(@value,'Run Test')])"; browserDriver.waitForElementEnabled(runTestButtonXpath); browserDriver.clickElementAndWaitForRerender(runTestButtonXpath); String failedComponents = ""; String fieldXpath = "//*[contains(@class,'html-field')]"; List<WebElement> fieldElements = browserDriver.findElementsByXpath(fieldXpath); if (fieldElements.isEmpty()) { throw new NoSuchElementException(fieldXpath + " not found on page."); } for (WebElement fieldElement : fieldElements) { List<WebElement> messageElementList = fieldElement .findElements(By.xpath(".//*[contains(@class,'portlet-msg-error')]")); WebElement labelElement = fieldElement.findElement(By.xpath(".//label")); String componentName = labelElement.getText(); componentName = componentName.replaceAll("\\s+.*$", ""); // If a component does not have the correct error message ("Text verification failed." for portal:captcha, // "Value is required." for all other components), add it to the list of failed components. if (messageElementList.isEmpty()) { failedComponents += (componentName + ", "); } else { WebElement messageElement = messageElementList.get(0); String messageText = messageElement.getText(); if (!"Value is required.".equals(messageText)) { failedComponents += (componentName + ", "); } } } return failedComponents; }
From source file:com.linagora.obm.ui.scenario.event.EventStepdefs.java
License:Open Source License
private boolean isYearlyEventInPrintedMonth(String title, String expectedDate, String expectedEventDatesTitle) { boolean found = false; WebElement eventsElement = driver.findElement(new ByCssSelector(".spreadSheet.eventList")); List<WebElement> divElements = eventsElement.findElements(new ByCssSelector("div")); for (WebElement divElement : divElements) { if (divElement.getAttribute("id").contains(expectedDate)) { List<WebElement> spanElements = divElement.findElements(new ByCssSelector("span")); for (WebElement spanElement : spanElements) { if (spanElement.getText().startsWith(expectedEventDatesTitle)) { WebElement imageElement = divElement.findElement(new ByCssSelector("strong")); assertThat(imageElement.getText()).isEqualTo(title); found = true;//from ww w . java2s . c o m break; } } } if (found) { break; } } return found; }
From source file:com.maoyan.pf.webcollector.spider.AttendrateCrawler.java
License:Open Source License
public static void main(String[] args) throws Exception { Executor executor = new Executor() { @Override// www . j a v a2 s .c om public void execute(CrawlDatum datum, CrawlDatums next) throws Exception { MongoClient mongoClient = new MongoClient("localhost", 27017); // ? // DBCollection dbCollection = mongoClient.getDB("maoyan_crawler").getCollection("rankings_am"); DB db = mongoClient.getDB("maoyan_crawler"); // ????? Set<String> colls = db.getCollectionNames(); for (String s : colls) { // Collection(?"") if (s.equals("attend_rate")) { db.getCollection(s).drop(); } } DBCollection dbCollection = db.getCollection("attend_rate"); HtmlUnitDriver driver = new HtmlUnitDriver(); driver.setJavascriptEnabled(false); driver.get(datum.getUrl()); // System.out.println(driver.getPageSource()); WebElement element = driver.findElementByCssSelector("div#seat_table"); List<WebElement> movie_name = element.findElements(By.className("c1 lineDot")); List<WebElement> boxoffice_rate = element.findElements(By.className("c2 red")); List<WebElement> visit_pershow = element.findElements(By.className("c3 gray")); WebElement cityarea = driver.findElementByCssSelector("span[class='today']"); System.out.println(cityarea.getText()); for (int i = 0; i < movie_name.size(); i++) { System.out.println(movie_name.get(i).getText()); System.out.println(boxoffice_rate.get(i).getText()); System.out.println(visit_pershow.get(i).getText()); BasicDBObject dbObject = new BasicDBObject(); dbObject.append("title", cityarea.getText()).append("movie_name", movie_name.get(i).getText()) .append("boxoffice_rate", boxoffice_rate.get(i).getText()) .append("visit_pershow", visit_pershow.get(i).getText()); dbCollection.insert(dbObject); } mongoClient.close(); } }; //DBDBManager DBManager manager = new BerkeleyDBManager("maoyan"); //Crawler?DBManagerExecutor Crawler crawler = new Crawler(manager, executor); crawler.addSeed("http://pf.maoyan.com/attend/rate"); crawler.start(1); }
From source file:com.mgmtp.jfunk.web.step.CheckTableCell.java
License:Apache License
@Override public void execute() { WebElement table = findTable(WebConstants.ID, idName); List<WebElement> rows = table.findElements(By.tagName(WebConstants.TR)); if (rowNumber < rows.size()) { throw new StepException("Table only had " + rows.size() + " rows; row index however is " + rowNumber); }//w w w .j a v a 2 s . c o m List<WebElement> columns = rows.get(rowNumber).findElements(By.tagName(WebConstants.TD)); WebElement cell = columns.get(columnNumber); if (cell == null) { throw new StepException("No column " + columnNumber + " in row " + rowNumber); } String actualValue = cell.getText().trim(); Matcher m = pattern.matcher(actualValue); if (!m.matches()) { throw new ValidationException("Value of row " + rowNumber + " and column " + columnNumber + " was not correct: The actual value " + actualValue + " does not match the regular expression " + pattern); } }
From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java
License:Open Source License
public void changeTableRow(String tableName, String rowName, String oldRowName) { WebElement tableRow = getRowForTable(tableName, oldRowName, true); List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td")); tableRowColumns.get(0).findElement(By.tagName("input")).clear(); tableRowColumns.get(0).findElement(By.tagName("input")).sendKeys(rowName); }
From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java
License:Open Source License
public void setUpTableContentHeader(String tableName, int teachingNumber, int generalizationNumber) { WebElement table = getTableWithHeader(tableName, true); WebElement tableContent = table.findElement(By.className("ui-datatable-tablewrapper")); WebElement tableContentHeader = tableContent.findElement(By.tagName("thead")); List<WebElement> tableContentHeaderColumns = tableContentHeader.findElements(By.className("checkbox-cell")); for (WebElement tableContentHeaderColumn : tableContentHeaderColumns) { if (tableContentHeaderColumn.findElement(By.className("ui-column-title")).getText().equals("U:")) { setUpHeaderParameter(tableContentHeaderColumn, teachingNumber); }/*from w w w.ja v a2 s .c om*/ if (tableContentHeaderColumn.findElement(By.className("ui-column-title")).getText().equals("G:")) { setUpHeaderParameter(tableContentHeaderColumn, generalizationNumber); } } }
From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java
License:Open Source License
public void clickDeleteRow(String tableName, String rowsName) { WebElement tableRow = getRowForTable(tableName, rowsName, true); List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td")); tableRowColumns.get(3).findElement(By.tagName("button")).click(); SeleniumWaiter.waitForJQueryAndPrimeFaces(driver); }
From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java
License:Open Source License
public List<String> getTableRowsNamesForTable(String newTableName, Boolean isEditing) { WebElement table = getTableWithHeader(newTableName, isEditing); WebElement tableContent = table.findElement(By.className("ui-datatable-tablewrapper")); WebElement tableContentRowsArea = tableContent.findElement(By.tagName("tbody")); List<WebElement> tableRows = tableContentRowsArea.findElements(By.tagName("tr")); List<String> tableRowNames = new ArrayList<>(); for (WebElement tableRow : tableRows) { List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td")); if (isEditing) { tableRowNames.add(tableRowColumns.get(0).findElement(By.tagName("input")).getAttribute("value")); } else {//from ww w . j av a 2 s.c o m tableRowNames.add(tableRowColumns.get(0).getText()); } } return tableRowNames; }