List of usage examples for org.openqa.selenium WebElement getSize
Dimension getSize();
From source file:entities.GPTPlanet.java
@Override public void openAd() { openAdsPage();/*from w w w .j a v a 2 s.c o m*/ ArrayList<String> links = getAllAds(); for (String link : links) { int timeout = 30; appendLog("-- Opening Ad: " + link); driver.get(homeUrl + link); while (timeout > 0) { List<WebElement> elements = null; try { elements = driver.findElements( By.xpath("//div[@id='surfbar' and not(contains(@style,'display: none'))]")); } catch (UnhandledAlertException ex) { appendLog("\tError: UnhandledAlertException"); elements = driver.findElements( By.xpath("//div[@id='surfbar' and not(contains(@style,'display: none'))]")); } if (elements.size() > 0) { WebElement e = elements.get(0); if (e.getText().contains("Wait please") || (e .findElements(By.xpath( "./div/div[@id='progressbar' and not(contains(@style,'display: none'))]")) .size() > 0)) { try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Neobux.class.getName()).log(Level.SEVERE, null, ex); } timeout--; } else if (e.getText().contains("Thanks for watching!") || e.getText().contains("Invalid Advertisement") || e.getText().contains("already visited")) { break; } else if (e .findElements( By.xpath("./div[@id='focusoff' and not(contains(@style,'display: none'))]")) .size() > 0) { appendLog("--- Off Focus...... ---"); driver.switchTo().window(getCurrentWindow()); e.findElement(By.xpath("./a")).click(); } else { try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Neobux.class.getName()).log(Level.SEVERE, null, ex); } timeout--; if (timeout < (timeout / 3)) { driver.navigate().refresh(); } } } else if (driver .findElements(By.xpath("//div[@id='vnumbers' and not(contains(@style,'display: none'))]")) .size() > 0) { try { try { Thread.sleep(2000); } catch (InterruptedException ex) { Logger.getLogger(Neobux.class.getName()).log(Level.SEVERE, null, ex); } WebElement element = driver .findElement(By.xpath("//*[@id=\"vnumbers\"]/table/tbody/tr/td[2]")); Point point = element.getLocation(); File ss = (File) ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); BufferedImage src = ImageIO.read(ss); BufferedImage screen = src.getSubimage(point.getX(), point.getY(), element.getSize().getWidth(), element.getSize().getHeight()); StaticImageScreenRegion region = new StaticImageScreenRegion(screen); boolean found = false; for (File file : new File("./src/imgs").listFiles()) { if (file.isFile()) { for (ScreenRegion match : region.findAll(new ImageTarget(ImageIO.read(file)))) { found = true; System.out.println("---location: " + point + " - " + element.getSize()); System.out.println("---match: " + match.getCenter()); System.out.println("-order: " + ((match.getCenter().getX() / 50) + 1)); System.out .println("- target: " + (point.getX() + 50 + match.getCenter().getX())); new Actions(driver).moveToElement(element, 0, 0) .moveByOffset(match.getCenter().getX(), match.getCenter().getY()) .click().perform(); break; } } if (found) { break; } } if (!found) { ImageIO.write(screen, "PNG", new File("./src/imgs/detected/notfound-" + link.substring(link.lastIndexOf("=") + 1) + ".png")); } // break; } catch (Exception ex) { Logger.getLogger(ScarletClicks.class.getName()).log(Level.SEVERE, null, ex); } } else { try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Neobux.class.getName()).log(Level.SEVERE, null, ex); } timeout--; if (timeout < (timeout / 3)) { driver.navigate().refresh(); } } } } }
From source file:imagedownload.Downloader.java
public void download() { System.out.println((new Date()).toString()); WebDriver driver = new ChromeDriver(); WebDriver.Window win = driver.manage().window(); // get the full screen size (exculde desktop toolbar) win.maximize();/*from ww w.ja v a2 s . c om*/ int screenHeight = win.getSize().getHeight(); int screenWidth = win.getSize().getWidth(); System.out.println("Screen: " + screenHeight + "*" + screenWidth); // set browser size and position it to bottom right win.setSize(new Dimension(browserWidth, browserHeight)); System.out.println("Browser: " + win.getSize().getHeight() + "*" + win.getSize().getWidth()); win.setPosition(new Point(screenWidth - browserWidth, screenHeight - browserHeight)); // position the browser outside of windows if (hide) { win.setPosition(new Point(screenWidth, screenHeight)); } String page = firstPage; boolean hasNextPage = true; int pageCnt = 0; while (hasNextPage && pageCnt < pageLimit) { pageCnt++; if (visitedPages.get(page) != null) { System.out.println("Looped back. Quit download."); break; } visitedPages.put(page, page); driver.get(page); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); hasNextPage = false; if (pagination) { // if no xpath configured, default search all <a> hyperlinks if (xpath == null || xpath.trim().equals("")) { xpath = determineNextPage(driver); } if (xpath != null && !xpath.trim().equals("")) { page = ""; System.out.println("Xpath: " + xpath); List<WebElement> checkList = driver.findElements(By.xpath(xpath)); for (WebElement elm : checkList) { String text = elm.getAttribute("innerHTML"); for (String t : next) { if (text.equals(t)) { hasNextPage = true; page = elm.getAttribute("href"); break; } } } System.out.println("Next page: " + hasNextPage + ", " + page); } } List<WebElement> imgList = driver.findElements(By.tagName("img")); List<String> filteredList = new ArrayList<String>(); for (WebElement img : imgList) { if (img.getAttribute("src") == null) { continue; } if (duplicateFilter) { if (savedImages.get(img.getAttribute("src")) != null) { continue; } } if (minSizeFilter) { if (img.getSize().getHeight() < minHeight || img.getSize().getWidth() < minWidth) { continue; } } filteredList.add(img.getAttribute("src").trim()); } int cnt = 0; InputStream imgIn = null; OutputStream imgOut = null; for (String location : filteredList) { cnt++; try { String[] urlArr = location.split("\\/"); String[] nameArr = urlArr[urlArr.length - 1].split("\\."); String ext = nameArr[nameArr.length - 1]; String filePath = config.getProperty("output.folder") + config.getProperty("output.namePrefix") + "_" + pageCnt + "_" + cnt + "." + ext; System.out.println("File location: " + location); System.out.println("File name: " + urlArr[urlArr.length - 1]); System.out.println("File ext: " + nameArr[nameArr.length - 1]); System.out.println("Output: " + filePath); driver.get(location); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebElement image = driver.findElement(By.tagName("img")); System.out.println("Image element: " + image.getAttribute("src")); AutoSave.save(driver, image, filePath); savedImages.put(location, location); } finally { try { if (imgIn != null) { imgIn.close(); } if (imgOut != null) { imgOut.close(); } } catch (IOException ex) { Logger.getLogger(Downloader.class.getName()).log(Level.SEVERE, null, ex); } } } } driver.quit(); System.out.println((new Date()).toString()); }
From source file:influent.selenium.tests.AccountsViewTests.java
License:MIT License
@Test public void searchLoanTest() { SeleniumUtils.navigateToTab(driver, SeleniumUtils.TAB_ACCOUNTS); List<WebElement> elements = driver.findElements(By.id("influent-view-toolbar-search-input")); WebElement element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: influent-view-toolbar-search-input element"); }/*from ww w .j a va 2s.c o m*/ element.sendKeys("joe"); elements = driver.findElements(By.className("infGoSearch")); element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: infGoSearch element"); } element.click(); try { Thread.sleep(1000); } catch (Exception e) { } element = (new WebDriverWait(driver, 120)) .until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".infSearchResultCounts"))); assertEquals("Showing 12 of 412 results", element.getText()); elements = driver.findElements((By.cssSelector(".simpleSearchResultText"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals( "Name:JoeDescription:Joe, 40 years old, is still single. He has been managing a livestock business, particularly hog-raising, for almost 10 years. His net income every three months is 6,000 Philippine pesos (PHP) for every hog that he sell. He's asking for a loan of 12,000 PHP to purchase livestock feeds for his hogs. He hopes that Kiva lenders ...", element.getText()); elements = driver.findElements((By.cssSelector(".infSearchResultStateToggle"))); element = SeleniumUtils.getDisplayedElement(elements); element.click(); assertEquals("[less]", element.getText()); elements = driver.findElements((By.cssSelector(".simpleEntityViewTextValue"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals("PHP", element.getText()); elements = driver.findElements((By.className("transaction-graph"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals(220, element.getSize().getHeight()); elements = driver.findElements((By.cssSelector(".selectSingleResult input[type='checkbox']"))); element = SeleniumUtils.getDisplayedElement(elements); element.click(); elements = driver.findElements((By.className("searchResultSelected"))); element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Selected result was not highlighted"); } }
From source file:influent.selenium.tests.AccountsViewTests.java
License:MIT License
@Test public void searchPartnerTest() { SeleniumUtils.navigateToTab(driver, SeleniumUtils.TAB_ACCOUNTS); List<WebElement> elements = driver.findElements(By.id("influent-view-toolbar-search-input")); WebElement element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: influent-view-toolbar-search-input element"); }/*from w ww.j av a 2 s . c om*/ element.sendKeys("visionfund"); elements = driver.findElements(By.className("infGoSearch")); element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: infGoSearch element"); } element.click(); try { Thread.sleep(1000); } catch (Exception e) { } element = (new WebDriverWait(driver, 120)) .until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".infSearchResultCounts"))); assertEquals("Showing 6 of 6 results", element.getText()); elements = driver.findElements((By.cssSelector(".simpleSearchResultText"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals("Name:VisionFund Albanianame:VisionFund AlbaniaStatus:activeDue Diligence Type:Full", element.getText()); elements = driver.findElements((By.cssSelector(".infSearchResultStateToggle"))); element = SeleniumUtils.getDisplayedElement(elements); element.click(); assertEquals("[less]", element.getText()); elements = driver.findElements((By.cssSelector(".simpleEntityViewTextValue"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals("AL", element.getText()); elements = driver.findElements((By.className("transaction-graph"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals(220, element.getSize().getHeight()); }
From source file:influent.selenium.tests.AccountsViewTests.java
License:MIT License
@Test public void searchLenderTest() { SeleniumUtils.navigateToTab(driver, SeleniumUtils.TAB_ACCOUNTS); List<WebElement> elements = driver.findElements(By.id("influent-view-toolbar-search-input")); WebElement element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: influent-view-toolbar-search-input element"); }/*from w w w .j av a2 s . c o m*/ element.sendKeys("juan ivy"); elements = driver.findElements(By.className("infGoSearch")); element = SeleniumUtils.getDisplayedElement(elements); if (element == null) { throw new AssertionError("Couldn't find: infGoSearch element"); } element.click(); try { Thread.sleep(1000); } catch (Exception e) { } element = (new WebDriverWait(driver, 120)) .until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".infSearchResultCounts"))); assertEquals("Showing 12 of 3284 results", element.getText()); elements = driver.findElements((By.cssSelector(".simpleSearchResultText"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals( "Name:Juan IvyLoan Reason:it gives me a sense of accomplishment and allow others success.Occupation:entrepreneur", element.getText()); elements = driver.findElements((By.cssSelector(".infSearchResultStateToggle"))); element = SeleniumUtils.getDisplayedElement(elements); element.click(); assertEquals("[less]", element.getText()); elements = driver.findElements((By.cssSelector(".simpleEntityViewTextValue"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals("Juan Ivy", element.getText()); elements = driver.findElements((By.className("transaction-graph"))); element = SeleniumUtils.getDisplayedElement(elements); assertEquals(220, element.getSize().getHeight()); }
From source file:io.appium.java_client.AppiumDriver.java
License:Apache License
/** * Convenience method for "zooming in" on an element on the screen. * "zooming in" refers to the action of two appendages pressing the screen and sliding away from each other. * NOTE://www . j a va 2 s .co m * This convenience method slides touches away from the element, if this would happen to place one of them * off the screen, appium will return an outOfBounds error. In this case, revert to using the MultiTouchAction api * instead of this method. * * @param el The element to pinch */ public void zoom(WebElement el) { MultiTouchAction multiTouch = new MultiTouchAction(this); Dimension dimensions = el.getSize(); Point upperLeft = el.getLocation(); Point center = new Point(upperLeft.getX() + dimensions.getWidth() / 2, upperLeft.getY() + dimensions.getHeight() / 2); int yOffset = center.getY() - upperLeft.getY(); TouchAction action0 = new TouchAction(this).press(el).moveTo(el, center.getX(), center.getY() - yOffset) .release(); TouchAction action1 = new TouchAction(this).press(el).moveTo(el, center.getX(), center.getY() + yOffset) .release(); multiTouch.add(action0).add(action1); multiTouch.perform(); }
From source file:io.github.seleniumquery.functions.jquery.events.ClickFunctionUtils.java
License:Apache License
public static String toString(WebElement element) { return "\n\t id attribute: \"" + element.getAttribute("id") + "\"" + "\n\t class attribute: \"" + element.getAttribute("class") + "\"" + "\n\t name attribute: \"" + element.getAttribute("name") + "\"" + "\n\t tag: \"" + element.getTagName() + "\"" + "\n\t text: \"" + element.getText() + "\"" + "\n\t value attribute: " + element.getAttribute("value") + "\"" + "\n\t size()/dimension: " + element.getSize() + "\n\t isDisplayed(): " + element.isDisplayed() + "\n\t isEnabled(): " + element.isEnabled() + "\n\t toString(): " + element + "\n"; }
From source file:io.selendroid.nativetests.NativeElementInteractionTest.java
License:Apache License
/** * Based on the default test emulator used to verify build that has a resolution of 320x480 * pixels./* ww w .j av a 2 s . c om*/ */ @Test public void shouldGetSizeOfElement() { openStartActivity(); WebElement button = driver().findElement(By.id("waitingButtonTest")); Dimension dimension = button.getSize(); Assert.assertTrue("width should be >=48, but was " + dimension.height, dimension.height >= 48); Assert.assertTrue("width should be >=200, but was " + dimension.width, dimension.width >= 200); }
From source file:io.selendroid.webviewdrivertests.WebElementInteractionTest.java
License:Apache License
/** * Based on the default test emulator used to verify build that has a resolution of 320x480 * pixels.//from w w w .j a v a 2s . co m */ @Test public void shouldGetSizeOfElement() { givenWebViewWithFormPageLoaded(); WebElement element = driver().findElement(By.id("checky")); Dimension size = element.getSize(); Assert.assertEquals(size.width, 19); Assert.assertEquals(size.height, 19); }
From source file:minium.web.internal.actions.DragAndDropInteraction.java
License:Apache License
@Override protected void doPerform() { WebElement targetElem = getFirstElement(target); if (targetOffset == null) { getActions().dragAndDrop(getFirstElement(), targetElem).perform(); } else {/*from w ww. j a va 2 s.c o m*/ org.openqa.selenium.Dimension size = targetElem.getSize(); Dimension dimension = new Dimension(size.width, size.height); Point offsetPoint = targetOffset.offset(dimension); getActions().dragAndDropBy(getFirstElement(), offsetPoint.x(), offsetPoint.y()).perform(); } }