如何检查用户是否在Serenity中重定向到新页面

时间:2018-06-20 11:24:21

标签: serenity-bdd

我开始尝试使用Serenity BDD和Java的剧本模式。虽然我掌握了基本概念,但在应用关键概念时遇到了一些麻烦。这就是我想做的...

我的第一个尝试是使用户自动登录到应用程序。这包括以下内容:

  1. 打开一个特定的URL。
  2. 输入用户凭据,然后点击“提交”按钮。
  3. 检查用户是否在“欢迎页面”上。

我成功实现了第1项和第2项,但是我为3处的支票而苦恼。

JUnit测试

@Test
public void shouldBeAbleToLogin() {
    user.whoCan(BrowseTheWeb.with(browser));
    user.wasAbleTo(OpenTheApplication.onTheLoginPage());
    user.attemptsTo(SubmitUserCredentials.withValues("test", "test"));
    user.should(???);
}

提交凭据后,用户将被重定向到欢迎页面。 ???表示我不知道如何实施此检查。

  1. 检查新网址是否与欢迎页面的网址匹配。
  2. 检查欢迎页面上是否显示某些文本。
  3. 检查某个元素在欢迎页面上是否可见。

我知道我需要实现某个Question类,仅此而已。你能给我一些提示,你会怎么做吗?

3 个答案:

答案 0 :(得分:1)

在Serenity BDD中,您可以编写一个Question类:

导入静态net.thucydides.core.webdriver.ThucydidesWebDriverSupport.getDriver;

实现问题<布尔>

其中将是方法:

@Override
public Boolean answeredBy(Actor actor) {

在其中,您可以:

    WebDriver driver = getDriver();
    String currentUrl = driver.getCurrentUrl();

在我的情况下,我有一个循环来做更多的检查,以防URL被更改。

答案 1 :(得分:0)

在这种情况下,serenity-ensure可以帮助

Ensure.thatTheCurrentPage().currentUrl()

将URL作为String返回确保我们可以使用内置的String方法(例如equals,contains ..)进行检查。

希望这会有所帮助!

答案 2 :(得分:0)

您还可以使用waitForTextToAppear()方法或waitFor(xpath)方法来验证欢迎页面