断言ElementNotPresent Webdriver

时间:2014-03-13 11:55:40

标签: selenium selenium-webdriver assert

我可以断言一个不存在的元素吗?我想断言元素" textarea"在网站上不存在。

try {
    assertFalse(isElementPresent(By.cssSelector("textarea")));
} catch (Error e) {
    verificationErrors.append(e.toString());
    System.out.println(verificationErrors);
}


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

2 个答案:

答案 0 :(得分:0)

方法#1

  

import junit.framework.Assert;

     

如果(isElementPresent(By.cssSelector("!textarea的")))
  {
      System.out.println(" Text Not Available");
   其他的    {
  Assert.fail();
   }


方法#2

在您的情况下,请使用下面给出的否定用例

正面案例

  

import junit.framework.Assert;

     

boolean b = driver.getPageSource()。contains(" your text");
  Assert.assertTrue(B);

否定案例

  

import junit.framework.Assert;

     

boolean b = driver.getPageSource()。contains(" your text");
  Assert.assertFalse(B);

有很多方法可以做到这一点。以上几点:)

强烈建议使用方法#1!

答案 1 :(得分:0)

你问题中的代码应该有用。

另一种方法是调用driver.findElements而不是driver.findElement(请注意添加的s)。如果没有匹配,NoSuchElementException将返回一个空列表,而不是抛出driver.findElements。从那里,您只需断言返回列表的大小为零。