我正在使用Selenium WebDriver并使用Java编码。在代码中,我需要向下滚动到网页中的特定元素以进行单击。我正在使用JavascriptExecutor命令。我的问题是如何根据网页中的位置了解该特定元素的确切x和y坐标。我正在使用的代码的语法如下:
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("scroll(x,y)");
在上面代码的第二行中,我需要给出我想要点击的元素的x和y坐标的特定值。
答案 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)
以下是您的问题的答案:
要了解该特定元素的确切x
和y
坐标,请根据网页中的像素位置使用以下代码块:
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.
如果这回答你的问题,请告诉我。