如何获取网页中元素的x,y坐标?

时间:2017-08-03 10:08:31

标签: javascript java selenium automation

我正在使用Selenium WebDriver并使用Java编码。在代码中,我需要向下滚动到网页中的特定元素以进行单击。我正在使用JavascriptExecutor命令。我的问题是如何根据网页中的位置了解该特定元素的确切x和y坐标。我正在使用的代码的语法如下:

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("scroll(x,y)");

在上面代码的第二行中,我需要给出我想要点击的元素的x和y坐标的特定值。

4 个答案:

答案 0 :(得分:2)

我建议你引用元素本身而不是它的坐标。

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

希望这会有所帮助。感谢。

答案 1 :(得分:2)

您可以使用java selenium获取坐标,

webElement.getLocation().getX();
webElement.getLocation().getY();

答案 2 :(得分:0)

Santosh是对的,你应该使用元素的参考滚动。但是,如果你仍想在下面的代码中使用坐标: -

您可以使用以下代码: -

@Test
 public void getCoordinates() throws Exception {
  //Locate element for which you wants to retrieve x y coordinates.
       WebElement Image = driver.findElement(By.xpath("//img[@border='0']"));
       //Used points class to get x and y coordinates of element.
        Point classname = Image.getLocation();
        int xcordi = classname.getX();
        System.out.println("Element's Position from left side"+xcordi +" pixels.");
        int ycordi = classname.getY();
        System.out.println("Element's Position from top"+ycordi +" pixels.");
 }

来源: -

http://www.maisasolutions.com/blog/How-o-get-X-Y-coordinates-of-element-in-Selenium-WebDriver

答案 3 :(得分:0)

以下是您的问题的答案:

要了解该特定元素的确切xy坐标,请根据网页中的像素位置使用以下代码块:

import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class location_of_element 
{
    public static void main(String[] args) 
    {
        System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.google.co.in");
        WebElement element = driver.findElement(By.name("q"));
        Point point = element.getLocation();
        System.out.println("Element's Position from left side is: "+point.getX()+" pixels.");
        System.out.println("Element's Position from top is: "+point.getY()+" pixels.");
     }
}
  

确保您已导入org.openqa.selenium.Point

控制台上的输出将为:

Element's Position from left side is: 413 pixels.
Element's Position from top is: 322 pixels.

如果这回答你的问题,请告诉我。