Example usage for org.openqa.selenium WebElement getLocation

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

Introduction

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

Prototype

Point getLocation();

Source Link

Document

Where on the page is the top left-hand corner of the rendered element?

Usage

From source file:akori.AKORI.java

public static void main(String[] args) throws IOException, InterruptedException {
    System.out.println("esto es AKORI");

    URL = "http://www.mbauchile.cl";
    PATH = "E:\\NetBeansProjects\\AKORI\\";
    NAME = "mbauchile.png";
    // Extrar DOM tree

    Document doc = Jsoup.connect(URL).timeout(0).get();

    // The Firefox driver supports javascript 
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    System.out.println(driver.manage().window().getSize().toString());
    System.out.println(driver.manage().window().getPosition().toString());
    int xmax = driver.manage().window().getSize().width;
    int ymax = driver.manage().window().getSize().height;

    // Go to the URL page
    driver.get(URL);//from   ww w . ja v a  2s  . c o m

    File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(screen, new File(PATH + NAME));

    BufferedImage img = ImageIO.read(new File(PATH + NAME));
    //Graphics2D graph = img.createGraphics();

    BufferedImage img1 = new BufferedImage(xmax, ymax, BufferedImage.TYPE_INT_ARGB);
    Graphics2D graph1 = img.createGraphics();
    double[][] matrix = new double[ymax][xmax];
    BufferedReader in = new BufferedReader(new FileReader("et.txt"));
    String linea;
    double max = 0;
    graph1.drawImage(img, 0, 0, null);
    HashMap<String, Integer> lista = new HashMap<String, Integer>();
    int count = 0;
    for (int i = 0; (linea = in.readLine()) != null && i < 10000; ++i) {
        String[] datos = linea.split(",");
        int x = (int) Double.parseDouble(datos[0]);
        int y = (int) Double.parseDouble(datos[2]);
        long time = Double.valueOf(datos[4]).longValue();
        if (x >= xmax || y >= ymax)
            continue;
        if (time < 691215)
            continue;
        if (time > 705648)
            break;
        if (lista.containsKey(x + "," + y))
            lista.put(x + "," + y, lista.get(x + "," + y) + 1);
        else
            lista.put(x + "," + y, 1);
        ++count;
    }
    System.out.println(count);
    in.close();
    Iterator iter = lista.entrySet().iterator();
    Map.Entry e;
    for (String key : lista.keySet()) {
        Integer i = lista.get(key);
        if (max < i)
            max = i;
    }
    System.out.println(max);
    max = 0;
    while (iter.hasNext()) {
        e = (Map.Entry) iter.next();
        String xy = (String) e.getKey();
        String[] datos = xy.split(",");
        int x = Integer.parseInt(datos[0]);
        int y = Integer.parseInt(datos[1]);
        matrix[y][x] += (int) e.getValue();
        double aux;
        if ((aux = normalMatrix(matrix, y, x, ((int) e.getValue()) * 4)) > max) {
            max = aux;
        }
        //normalMatrix(matrix,x,y,20);
        if (matrix[y][x] > max)
            max = matrix[y][x];
    }
    int A, R, G, B, n;
    for (int i = 0; i < xmax; ++i) {
        for (int j = 0; j < ymax; ++j) {
            if (matrix[j][i] != 0) {
                n = (int) Math.round(matrix[j][i] * 100 / max);
                R = Math.round((255 * n) / 100);
                G = Math.round((255 * (100 - n)) / 100);
                B = 0;
                A = Math.round((255 * n) / 100);
                ;
                if (R > 255)
                    R = 255;
                if (R < 0)
                    R = 0;
                if (G > 255)
                    G = 255;
                if (G < 0)
                    G = 0;
                if (R < 50)
                    A = 0;
                graph1.setColor(new Color(R, G, B, A));
                graph1.fillOval(i, j, 1, 1);
            }
        }
    }
    //graph1.dispose();

    ImageIO.write(img, "png", new File("example.png"));
    System.out.println(max);

    graph1.setColor(Color.RED);
    // Extraer elementos
    Elements e1 = doc.body().getAllElements();
    int i = 1;
    ArrayList<String> tags = new ArrayList<String>();
    for (Element temp : e1) {

        if (tags.indexOf(temp.tagName()) == -1) {
            tags.add(temp.tagName());

            List<WebElement> query = driver.findElements(By.tagName(temp.tagName()));
            for (WebElement temp1 : query) {
                Point po = temp1.getLocation();
                Dimension d = temp1.getSize();
                if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0)
                    continue;
                System.out.println(i + " " + temp.nodeName());
                System.out.println("  x: " + po.x + " y: " + po.y);
                System.out.println("  width: " + d.width + " height: " + d.height);
                graph1.draw(new Rectangle(po.x, po.y, d.width, d.height));
                ++i;
            }
        }
    }

    graph1.dispose();
    ImageIO.write(img, "png", new File(PATH + NAME));

    driver.quit();

}

From source file:akori.DrawLevel.java

public static void processSelenideElement(SelenideElement elem, Element temp, Integer id) {
    //        System.out.println("Examining selenide element '" + elem + "'");
    WebElement temp1 = elem.toWebElement();
    Point po = temp1.getLocation();
    Dimension d = temp1.getSize();
    if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0) {
        return;//from w w w .  ja v  a  2 s . co  m
    }
    int dep = 0;
    int j = 1;
    for (; !elem.equals(s); ++j) {
        elem = elem.parent();
        if (j > MAX_DEPTH) {
            break;
        }
    }
    Integer k = 0;
    String str = "";
    if (temp.hasText()) {
        str = temp.nodeName() + "," + po.x + "," + po.y + "," + d.width + "," + d.height + "," + j + "," + 1
                + "," + id + "," + (k + 1);
    } else {
        str = temp.nodeName() + "," + po.x + "," + po.y + "," + d.width + "," + d.height + "," + j + "," + 0
                + "," + id + "," + (k + 1);
    }
    elements.add(str);
    if (j > maxj) {
        maxj = j;
    }
}

From source file:akori.Features.java

public static void main(String[] args) throws IOException, InterruptedException {

    URL = "http://www.mbauchile.cl";

    Document doc = Jsoup.connect(URL).timeout(0).get();

    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();

    driver.get(URL);// www . j  a  v  a2 s . c o  m

    Elements e1 = doc.body().getAllElements();
    Element e = doc.body();
    PrintWriter writer = new PrintWriter("features.txt", "UTF-8");
    int i = 1;
    //        String[][] matrix = new String[e1.size()][10];

    //        traverse(e, 1, 1, "", 1, writer, driver);

    ArrayList<String> tags = new ArrayList<String>();
    System.out.println("");
    //        for (Element temp : e1) {
    //            if (!temp.nodeName().equals("br")) {
    //                writer.println(i + "," + temp.hashCode() + "," + temp.nodeName() + "," + temp.id());
    //                //System.out.println(i+","+temp.hashCode()+","+temp.nodeName());
    //                ++i;
    //            }
    //        }
    i = 1;
    for (Element temp : e1) {
        if (tags.indexOf(temp.tagName()) == -1) {
            tags.add(temp.tagName());
            List<WebElement> query = driver.findElements(By.tagName(temp.tagName()));
            for (WebElement temp1 : query) {
                Point po = temp1.getLocation();
                Dimension d = temp1.getSize();
                if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0) {
                    continue;
                }
                if (temp1.getTagName().equals("img"))
                    writer.println(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width + ","
                            + d.height + "," + temp1.getAttribute("class") + "," + temp1.getAttribute("src"));
                else if (temp1.getTagName().equals("a"))
                    writer.println(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width + ","
                            + d.height + "," + temp1.getAttribute("class") + "," + temp1.getAttribute("href"));
                else
                    writer.println(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width + ","
                            + d.height + "," + temp1.getAttribute("class") + "," + temp1.getText());
                ++i;
            }
        }
    }
    driver.quit();
    writer.close();
}

From source file:akori.Features.java

public static void traverse(Element e, int level, int index, String xpath, int siblings, PrintWriter writer,
        WebDriver driver) {/* w  w w . ja  va  2s.  c  om*/

    if (siblings > 1) {
        WebElement webe = null;
        try {
            webe = driver.findElement(By.xpath("/" + xpath + "/" + e.nodeName() + "[" + index + "]"));
        } catch (Exception exp) {
            System.out.println("exception no se encontro");
        }
        if (webe != null) {
            Point po = webe.getLocation();
            Dimension d = webe.getSize();
            if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0) {
                System.out.println("elemento negativo");
            } else {
                writer.println("/" + xpath + "/" + e.nodeName() + "[" + index + "]," + e.nodeName() + "," + po.x
                        + "," + po.y + "," + d.width + "," + d.height + "," + level);
            }
        }
    } else {
        WebElement webe = null;
        try {
            webe = driver.findElement(By.xpath("/" + xpath + "/" + e.nodeName()));
        } catch (Exception exp) {
            System.out.println("exception no se encontro");
        }
        if (webe != null) {
            Point po = webe.getLocation();
            Dimension d = webe.getSize();
            if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0) {
                System.out.println("elemento negativo");
            } else {
                writer.println("/" + xpath + "/" + e.nodeName() + "," + e.nodeName() + "," + po.x + "," + po.y
                        + "," + d.width + "," + d.height + "," + level);
            }
        }
    }

    int childSize = e.children().size();
    Elements children = e.children();
    int i = 1;
    for (Element temp : children) {
        if (siblings > 1) {
            traverse(temp, level + 1, i, xpath + "/" + e.nodeName() + "[" + index + "]", childSize, writer,
                    driver);
        } else {
            traverse(temp, level + 1, i, xpath + "/" + e.nodeName(), childSize, writer, driver);
        }
        ++i;
    }

}

From source file:akori.FeaturesSelenide.java

public static void main(String[] args) throws Exception {
    System.out.println("esto es FeaturesSelenide");
    PrintWriter writer = new PrintWriter("features.txt", "UTF-8");
    try {/*from   ww  w  .j a v a  2 s .  c o  m*/

        String URL = "http://www.mbauchile.cl";

        open(URL);

        SelenideElement s = $(By.tagName("body"));

        Document doc = Jsoup.connect(URL).timeout(0).get();
        Elements e1 = doc.body().getAllElements();

        ArrayList<String> tags = new ArrayList<String>();

        int i = 1;
        for (Element temp : e1) {
            if (tags.indexOf(temp.tagName()) == -1) {
                tags.add(temp.tagName());
                ElementsCollection query = $$(By.tagName(temp.tagName()));
                for (SelenideElement temp2 : query) {
                    WebElement temp1 = temp2.toWebElement();
                    Point po = temp1.getLocation();
                    Dimension d = temp1.getSize();
                    if (d.width <= 0 || d.height <= 0 || po.x < 0 || po.y < 0) {
                        continue;
                    }
                    if (temp1.getTagName().equals("img")) {
                        writer.print(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width
                                + "," + d.height + "," + temp1.getAttribute("class") + ","
                                + temp1.getAttribute("src"));
                        int j = 1;
                        for (j = 1; !temp2.equals(s); ++j) {
                            temp2 = temp2.parent();
                            if (j > 100)
                                break;
                        }
                        writer.println("," + j);
                    } else if (temp1.getTagName().equals("a")) {
                        writer.println(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width
                                + "," + d.height + "," + temp1.getAttribute("class") + ","
                                + temp1.getAttribute("href"));
                        int j = 1;
                        for (j = 1; !temp2.equals(s); ++j) {
                            temp2 = temp2.parent();
                            if (j > 100)
                                break;
                        }
                        writer.println("," + j);
                    } else {
                        writer.println(i + "," + temp1.getTagName() + "," + po.x + "," + po.y + "," + d.width
                                + "," + d.height + "," + temp1.getAttribute("class") + "," + temp1.getText());
                        int j = 1;
                        for (j = 1; !temp2.equals(s); ++j) {
                            temp2 = temp2.parent();
                            if (j > 100)
                                break;
                        }
                        writer.println("," + j);
                    }
                    ++i;

                }
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    writer.close();
}

From source file:akori.SELENIUM.java

public static void main(String[] args) throws Exception {
    // The Firefox driver supports javascript 
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    System.out.println(driver.manage().window().getSize().toString());
    System.out.println(driver.manage().window().getPosition().toString());
    URL = "http://www.mbauchile.cl";
    PATH = "E:\\NetBeansProjects\\AKORI\\1.png";

    // Go to the Google Suggest home page
    driver.get(URL);/*from   w w w .j  a v  a 2 s. c  o m*/

    // Enter the query string "Cheese"
    WebElement query = driver.findElement(By.id("container"));
    Point p = query.getLocation();
    Dimension d = query.getSize();

    System.out.println("x: " + p.x + " y: " + p.y);
    System.out.println("width: " + d.width + " height: " + d.height);

    driver.quit();
}

From source file:br.ufmg.dcc.saotome.beholder.selenium.WebElementAdapter.java

License:Apache License

@Override
public Point getLocation() {
    return (Point) (new StaleExceptionResolver<Point>() {
        @Override//from   w w w. j  av  a  2s.co m
        public Point execute(WebElement element) {
            return element.getLocation();
        }
    }).waitForElement();
}

From source file:cc.kune.selenium.SeleniumUtils.java

License:GNU Affero Public License

/**
 * Show cursor.//from   w  ww.jav  a 2s. c  o  m
 * 
 * @param webdriver
 *          the webdriver
 * @param element
 *          the element
 */
public static void showCursor(final WebDriver webdriver, final WebElement element) {
    final Point location = element.getLocation();
    showCursor(webdriver, location.getX(), location.getY());
}

From source file:cc.kune.selenium.SeleniumUtils.java

License:GNU Affero Public License

/**
 * Show cursor.//from  w  ww.j  ava  2s.  c o m
 * 
 * @param webdriver
 *          the webdriver
 * @param element
 *          the element
 * @param xOffset
 *          the x offset
 * @param yOffset
 *          the y offset
 */
public static void showCursor(final WebDriver webdriver, final WebElement element, final int xOffset,
        final int yOffset) {
    final Point location = element.getLocation();
    SeleniumUtils.showCursor(webdriver, location.getX() + xOffset, location.getY() + yOffset);
}

From source file:com.assertthat.selenium_shutterbug.utils.web.Coordinates.java

License:Open Source License

public Coordinates(WebElement element) {
    Point point = element.getLocation();
    Dimension size = element.getSize();
    this.width = size.getWidth();
    this.height = size.getHeight();
    this.x = point.getX();
    this.y = point.getY();
}