Serenity bdd 在serenity中的可执行操作内调用可重用/实用方法
我们定义了一个上传文件的void实用程序方法。现在尝试在Actions类中的Serenity Screenplay模式中将其用作可执行的动作,但是它不允许调用void实用程序方法。 很抱歉,如果问到基本问题,我们正在探索《宁静》的剧本,并坚持这一点 实用程序:Serenity bdd 在serenity中的可执行操作内调用可重用/实用方法,serenity-bdd,cucumber-serenity,Serenity Bdd,Cucumber Serenity,我们定义了一个上传文件的void实用程序方法。现在尝试在Actions类中的Serenity Screenplay模式中将其用作可执行的动作,但是它不允许调用void实用程序方法。 很抱歉,如果问到基本问题,我们正在探索《宁静》的剧本,并坚持这一点 实用程序: public static void DropFile(File filePath, WebElement target, int offsetX, int offsetY) { WebDriver driver = Sereni
public static void DropFile(File filePath, WebElement target, int offsetX, int offsetY) {
WebDriver driver = Serenity.getDriver();
driver = ((RemoteWebElement)target).getWrappedDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
XXXXXXXX
.......
}
.功能文件:
When user uploads a file
步骤定义文件:
@When("{actor} uploads a file")
public void user_uploads_excel(Actor actor) throws InterruptedException {
actor.wasAbleTo(UploadPage.Upload());
}
行动类:
public static Performable Upload() {
WebDriver driver = Serenity.getDriver();
WebElement uploadElement = driver.findElement(By.xpath("//*[@id='upload']"));
return Task.**where**("test", DropFile(new File("C:\\xx\\v.xlsx"), uploadElement, 0, 0));
}
在这里,将在“where”处得到一个错误,表示“将DropFile的返回类型更改为Consumer”,如果在下面将DropFile的返回类型更改为Consumer,则理解DropFile的返回值应该是什么
如果按以下方式更改了实用程序以实现建议的返回类型:
public static Consumer<Actor> DropFile(File filePath, WebElement target, int offsetX, int offsetY) {
WebDriver driver = Serenity.getDriver();
driver = ((RemoteWebElement)target).getWrappedDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
XXXXXXXX
.......
return ??
}
publicstaticconsumerdropfile(文件路径、WebElement目标、intoffsetx、intoffsety){
WebDriver=Serenity.getDriver();
驱动程序=((RemoteWebElement)目标).getWrappedDriver();
JavascriptExecutor jse=(JavascriptExecutor)驱动程序;
XXXXXXXX
.......
返回??
}