2015-10-13 50 views
1

我已经有这种错误,我仍然不知道为什么。我究竟做错了什么?Selenium + Java = Assertion error

如果我在页面源中获取文本,我需要声明为true。

因此,这里是我的方法:

public boolean AssertSearch() {     
    return driver.getPageSource().contains("Item found");    
} 

这里是我的断言:

assertTrue(buscarnok.validabuscaNOK()); 

而且我不断收到消息 “的错误信息”。我不知道为什么。如果我将"return driver.getPageSource().contains("Item found");"更改为driver.findelement(by.id("someID")).isdisplayed();它工作正常,那么为什么它不与getpagesource一起使用?

+1

缩小搜索“项目找到”包含在源或稍后添加(搜索完成后)? – ochi

+0

搜索结束后。一旦搜索成功完成,页面会显示消息“找到物品”,并显示物品的详细信息 –

+1

然后在页面源中找不到文本,是吗?你想要的是找到文本(在HTML上) – ochi

回答

1

如果您要查找的文本最初不在页面中,或者如果它被隐藏,它可能找不到它。

尝试这样:

String bodyText = driver.findElement(By.tagName("body")).getText(); 
Assert.assertTrue("Item Found", bodyText.contains(text)); 

您可以通过选择不同的标记名称,甚至是divclassid