1

我带着更多愚蠢的问题回来了

1) 如果 AssertEquals 为假,如何使测试失败?

我有这个代码 -

public boolean compareWidthPixels(By by, String expected) {
    System.out.println(driver.findElement(by).getCssValue("width"));
    try {
        assertEquals(expected, driver.findElement(by).getCssValue("width"));
        System.out.println("Width as expected");
        return true;

    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println("Width incorrect");
        return false;

    }

当宽度与预期值不匹配但测试用例通过时,此代码显示“宽度不正确”。如果宽度不相等,我希望测试失败。

2)如何断言/验证元素不存在?

作为一个新手,我尝试了很多我在 Google 和 Stack Overflow 中找到的东西 - 断言 WebElement 不存在使用 Selenium WebDriver 和 javaSelenium WebDriver - 测试元素是否存在等。但它们都没有奏效。我正在使用 JUnit4 并且需要一个在元素不存在时应该通过的函数。

谢谢

弥勒佛

PS:如果它看起来令人困惑或迷失方向,请随时编辑这个问题。

4

2 回答 2

4

答案 1:要使用断言 true 或 false,您应该使用 if else 代替,然后通过断言调用函数,例如

public boolean compareWidthPixels(By by, String expected) {
    System.out.println(driver.findElement(by).getCssValue("width"));
    if (driver.findElement(by).getCssValue("width").equals(expected)){
        System.out.println("Width as expected");
        return true;
    } 
    System.out.println("Width incorrect");
    return false;
}

AssertTrue(compareWidthPixels(by, expected))然后在您的测试中使用 compareWidthPixels 作为 ' '

同样对于第二个问题,您可以使用以下

private boolean isElementPresent(By by) {
    try {
        driver.findElement(by);
        return true;
    } catch (NoSuchElementException e) {
        return false;
    }
}

在断言中使用 is 元素。

于 2012-07-23T13:03:24.283 回答
0

添加Assert.fail();你的 catch 块。

例子:

try {
    ----- your code -----

} catch(Exception e) {
    Assert.fail();
}

希望这能解决你的问题

于 2014-04-15T10:35:37.170 回答