微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在宁静的可执行操作中调用可重用/实用方法

如何解决在宁静的可执行操作中调用可重用/实用方法

我们定义了一种用于上传文件的 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 举报,一经查实,本站将立刻删除。