我回来时有更愚蠢的问题
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)如何断言/验证元素不存在?
作为一个新手,我尝试了很多我在谷歌和Stack Overflow中找到的东西 - Assert that a WebElement is not present using Selenium WebDriver with java,Selenium WebDriver - Test if element is present等等,但都没有奏效。我正在使用JUnit4,如果元素不存在,需要一个应该通过的函数。
由于
弥勒
P.S:如果看起来令人困惑或迷失方向,请随意编辑这个问题。答案 0 :(得分:4)
答案1:要使用assert true或false,你应该使用if else,然后通过assert调用函数,例如:
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;
}
然后在测试中使用compareWidthPixels作为“AssertTrue(compareWidthPixels(by, expected))
”
同样对于第二个问题,您可以使用以下
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
在断言中使用is元素。
答案 1 :(得分:0)
在catch块中添加Assert.fail();
。
示例:
try {
----- your code -----
} catch(Exception e) {
Assert.fail();
}
希望这能解决您的问题