如何解决在宁静的可执行操作中调用可重用/实用方法
我们定义了一种用于上传文件的 void 实用方法。现在尝试在 Actions 类的 Serenity Screenplay 模式中使用它作为可执行的操作,但是它不允许调用 void 实用程序方法。 抱歉,如果问到基本问题,我们正在探索 Serenity Screenplay 并坚持这一点。
实用性:
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
.......
}
.feature 文件:
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));
}
在这里,会在“where”处得到一个错误,提示“将 DropFile 的返回类型更改为 Consumer,如果将 DropFile 的返回类型更改为 Consumer,则了解 DropFile 的返回值应该是什么。
如果更改如下实用程序以实现建议的返回类型:
public static Consumer<Actor> DropFile(File filePath,int offsetY) {
WebDriver driver = Serenity.getDriver();
driver = ((RemoteWebElement)target).getWrappedDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
XXXXXXXX
.......
return ??
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。