有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Selenium如何在具有双/浮点坐标的点上悬停?

目前,Selenium的Actions类仅将此作为moveToElement的函数:

public Actions moveToElement(WebElement toElement, int xOffset, int yOffset {
    action.addAction(new MoveToOffsetAction(mouse, (Locatable) toElement, xOffset, yOffset));
    return this;
}

然而,网站的坐标有float坐标(例如(200.5,0))。有没有办法让我悬停到这一点

[编辑]: 这就是我正在尝试的方法。在整数坐标下工作得非常好

public void hoverPt(String xAxis) throws Exception //Use Build Interaction
{
int x = Integer.parseInt(xAxis);
WebDriver driver = WebManager.getDriver();
WebElement lineGraph = driver.findElement(By.xpath("[xpath of chart plane]"));
Actions builder = new Actions(driver);
builder.moveToElement(lineGraph, x, 0).build().perform();
Thread.sleep(5000);
}

字符串xAxis是从excel工作表中获取的,然后我将其解析为int,以便将其参数化为moveToElement


共 (1) 个答案

  1. # 1 楼答案

    您可以使用Robot类来实现这一点:

        Point p = toElement.getLocation();
        int x = p.getX();
        int y = p.getY();
        Dimension d = toElement.getSize();
        int h = d.getHeight();
        int w = d.getWidth();
        Robot r = new Robot();
        r.mouseMove(x + (w/2), y+(h/2) +80);