AssertJ JUnitSoftAssertions 如何等待页面加载

问题描述 投票:0回答:1

我正在使用 JUnitSoftAssertions,到目前为止我很喜欢它。但有时,点击号召性用语按钮的时间比下一个断言的时间长,因此会导致测试失败。

例如:

@Rule
public final JUnitSoftAssertions softly = new JUnitSoftAssertions();

@And("he should be on {page} page")
public void gotoPage(String page) {
  // current page is A, click to go to page B
  toPageBButton.click();
  softly.assertThat(driver.getCurrentUrl()).as("Page B").isEqualTo(page);
  softly.assertAll();
}

断言失败,因为

getCurrentUrl()
仍在页面 A 上。

如果我处于调试模式,那么它会通过,因为我有断点。

如果我断言页面 B 上的按钮显示在

isEqualTo(page)
之前,那么它也会通过,但奇怪的是我在断言当前 URL 之前断言按钮

有没有办法在点击动作和断言之前等待?我不想使用

Thread.sleep()

java automated-tests assertion assertj
1个回答
0
投票

因为我使用

WebElementFacade
,所以我可以等到按钮不再可见,点击后:

toPageBButton.click();
element(toPageBButton).waitUntilNotVisible();
© www.soinside.com 2019 - 2024. All rights reserved.