2014-03-13 25 views
0

我可以断言一个不存在的元素吗?我想断言网站上不存在元素“textarea”。Assert ElementNotPresent Webdriver

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; 
    } 
} 
+0

您发布的代码不适合您的目的吗? –

回答

0

方法#1

进口junit.framework.Assert;

如果
{
的System.out.println( “文件不可用”)(isElementPresent(By.cssSelector( “文本域”))!);
} else
{
Assert.fail();
}


方法2

在你的情况,请及时与负的情况下使用下面去

阳性病例

进口junit.framework给出。断言;

boolean b = driver.getPageSource()。contains(“your text”);
Assert.assertTrue(b);

否定的情况下

进口junit.framework.Assert;

boolean b = driver.getPageSource()。contains(“your text”);
Assert.assertFalse(b);

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

强烈建议方法#1!

+0

让我知道如果你有问题 –

+4

通过页面搜索源是一种非常糟糕和不准确的方式来寻找一个元素。请重新考虑这个答案。 – JimEvans

+0

当然@JimEvans我会很快做出编辑 –

0

你的问题中的代码应该工作。

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