Example usage for org.openqa.selenium WebElement getSize

List of usage examples for org.openqa.selenium WebElement getSize

Introduction

In this page you can find the example usage for org.openqa.selenium WebElement getSize.

Prototype

Dimension getSize();

Source Link

Document

What is the width and height of the rendered element?

Usage

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();
    }
}