0

好的。要么这实际上很奇怪,要么我缺少一些基本的东西。我有一些代码试图断言 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> 

怎么会这样?

值得一提的是,在系统从 Angular6 升级到最新版本之前,assertThat() 在这段代码中已经使用了好几年。但这应该与 Java 的 assertThat() 声称 size() 为零是 1 没有任何关系?检查变量自然会发现 size() 确实为零,正如 assert < 1 所证明的那样。但显然不是根据 assertThat().isLessTHan()。

4

0 回答 0