Ok。これは実際には奇妙であるか、私が見逃している基本的なものがあります。WebElements のリストが存在しないことをアサートしようとするコードが少しあります。リストサイズにassertと<1を使用すると、機能します。しかし、私の好みのアサーション メソッドは assertThat .isLessThan です。これはまったく同じ状況では機能しません。
コード:
@FindBy(css = "[data-e2e-selector=soknad-boks-selector]")
private List<WebElement> soknadbokser;
public void forventIngenSoknaderPaMinArbeidsflate() {
waitForelementNotVisible();
//assertThat(soknadbokser.size()).isLessThan(1); // DOES NOT WORK
assert(soknadbokser.size()<1); // WORKS
}
private void waitForelementNotVisible() {
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("[data-e2e-selector=soknad-boks]")));
}
上記の assertThat を使用すると、予期しないアサーション エラーが発生します。
java.lang.AssertionError:
Expecting:
<1>
to be less than:
<1>
どうすればいいの?
assertThat() は、システムが Angular6 から最新バージョンにアップグレードされる前に、このコードで数年間使用されていたことに言及する価値があるかもしれません。しかし、これは Java の assertThat() がゼロの size() は 1 であると主張していることとは何の関係もないはずです? 変数をチェックすると、assert < 1 によって証明されるように、size() が実際にゼロであることが自然に明らかになります。