serenity-bdd - 在一个 Serenity 任务类中打开不同的 URL?
问题描述
在 Serenity BDD 中,我有一个Task
可以打开应用程序的登录页面。我想使用这个类不仅可以打开登录页面,还可以打开其他页面。
public class StartWith implements Task {
LoginPage loginPage;
@Override
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
Open.browserOn(loginPage)
);
}
public static Task theLoginPage() {
return instrumented(StartWith.class);
}
// Is this possible???
public static Task theContactPage() {
return instrumented(StartWith.class);
}
}
是否可以添加另一个静态方法,例如theContactPage
,以便我的演员可以调用其中一个:
StartWith.theLoginPage()
StartWith.theContactPage()
解决方案
您可以使用 url 作为字符串参数。
public class StartWith implements Task {
private final String url;
public StartWith(String url) {
this.url = url;
}
@Override
@Step("{0} start portal at \\{#url\\}")
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
Open.url(url)
);
}
public static Task theLoginPage() {
String url = "http://example.com/login";
return instrumented(StartWith.class, url);
}
public static Task theContactPage() {
String url = "http://example.com/contact";
return instrumented(StartWith.class);
}
}
推荐阅读
- html - 跨浏览器保持表情符号一致
- javascript - 如何在 asp.net 中使用 XMLHttpRequest 从带有 Post 方法的页面获取响应文本?
- sql - mssql cdc update_mask 过滤器更改仅在列 TS
- uipath - 构建数据表错误(无法读取数据表)
- php - 邮件程序错误:邮件正文为空,需要在正文中没有更改的情况下发送邮件
- python - 这是解决 Spacekings 问题的正确方法吗?
- c# - 如何在 C# 中拯救 null?
- java - com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例
- git - 这个 git rebase 步骤两个 git 分支是否正确?
- javascript - 如何在使用lineseries制作的线条上方对齐uielement文本框