WebDriver Actions的工作原理

时间:2013-12-12 13:43:02

标签: javascript selenium automation webdriver

我对WebDriver操作的机制感兴趣。 例如

 var actions = new Actions(driver);
 var action = actions.MoveToElement(element).Build();
 action.Perform();

MoveToElement()方法的工作原理是什么?它是javascript的包装器吗? 如果是,是否可以获得此javascript代码?

3 个答案:

答案 0 :(得分:1)

所以 - 我自己对机制很感兴趣,所以我看了一下硒源,我的决心是 - 不。它不使用javascript。它使用Java的能力来读取/移动鼠标位置/键盘驱动程序/等,然后当你调用perform()时,它有一个Actions的队列,然后它会执行。

答案 1 :(得分:1)

moveToElement是基于坐标实现的。 以下是moveToElement的代码如下

public Actions moveToElement(WebElement toElement) {
    this.action.addAction(new MoveMouseAction(this.mouse,
            (Locatable) toElement));
    return this;
}


public abstract interface Locatable {
public abstract Coordinates getCoordinates();
}

public class MoveMouseAction extends MouseAction implements Action {
public MoveMouseAction(Mouse mouse, Locatable locationProvider) {
    super(mouse, locationProvider);
    if (locationProvider == null)
        throw new IllegalArgumentException(
                "Must provide a location for a move action.");
}

public void perform() {
    this.mouse.mouseMove(getActionLocation());
}
}

答案 2 :(得分:0)

没有javascript。它使用坐标在那里移动鼠标。查看this链接。