如果所有动作都可以使用动作类执行,那么我们在什么地方,为什么需要动作接口,它的解释是什么?
方法1:-
WebElement Fname = driver.findElement(By.id("ts_first_name"));
Actions act = new Actions(driver);
Action newAct = act.moveToElement(Fname)
.keyDown(Fname, Keys.SHIFT)
.sendKeys("abhresh")
.keyUp(Fname, Keys.SHIFT)
.doubleClick(Fname)
.contextClick(Fname)
.build();
newAct.perform();
方法2:-
WebElement Fname = driver.findElement(By.id("ts_first_name"));
Actions act = new Actions(driver);
act.moveToElement(Fname)
.keyDown(Fname, Keys.SHIFT)
.sendKeys("abhresh")
.keyUp(Fname, Keys.SHIFT)
.doubleClick(Fname)
.contextClick(Fname)
.build().perform();
如果两种方法都相同,那么为什么要使用方法1?为什么不呢?
答案 0 :(得分:2)
您基本上是在问:在示例1中声明局部变量 newAct
的目的是什么。
答案是:取决于。
如果您仅仅需要该Action对象在其上调用perform()
,那么在该局部变量中有没有的意义。另一方面,如果您想在调用newAct
之后用perform()
做 other 事情,那么显然,最好存储该对象以便以后访问。< / p>
换句话说:您选择了完成任务所需的方法。这里没有对与错,也没有对与错。只是两种略有不同的方法,支持两种略有不同的用例。