Selenium Action是一个只有perform()方法的接口,它执行复合动作。
为什么它是一个界面,或者人们有理由以这种方式保留它的设计决策是什么。
public class ActionBuildPerform {
public static void main(String... args) {
WebDriver driver = new FirefoxDriver();
driver.get("file://C:/selectable.html");
WebElement one = driver.findElement(By.name("one"));
WebElement three = driver.findElement(By.name("three"));
WebElement five = driver.findElement(By.name("five"));
// Add all the actions into the Actions builder.
Actions builder = new Actions(driver);
builder.keyDown(Keys.CONTROL)
.click(one)
.click(three)
.click(five)
.keyUp(Keys.CONTROL);
// Generate the composite action.
Action compositeAction = builder.build();
// Perform the composite action.
compositeAction.perform();
}
}
此外声明如
Action compositeAction = builder.build();
让我感到困惑,因为我一直认为引用变量应该是一个类。我理解这意味着它可以是任何实现该Action接口的类(但仍然无法绕过它)。也许我有一些java基础问题。如果有人可以对此有所了解。