我写了一个简单的Fitnesse tes,效果很好。今天我发现fitnesse生成的输出页面(NoSuchElementException)和控制台显示的输出(java.lang.Exception)显示的错误有所不同。知道导致这种情况的原因以及如何确保控制台也显示正确的错误?
情况是这样的。
在我的内容文件中,我有一行:
|check|field exists|testknop|true|
我的灯具中的相应方法如下:
public boolean fieldExists(String fieldName) {
// Als het element niet gevonden kan worden treed eer een exception op dus assert is niet
// nodig
driver.findElement(By.id(fieldName));
// sluit driver weer af
driver.quit();
return false;
}
现在生成的fitnesse报告该行标记为黄色,包含带有selenium NoSuchElementException的堆栈跟踪。
当我从maven运行它时,我得到一个通用的java.lang.Exception
由于
答案 0 :(得分:0)
我设法找到适合我的解决方案。
问题是driver.findElement(By.id(fieldName));
有时会导致异常。
当我更改下面发布的测试和代码时,它适用于我。
|check|field exists|testknop|inloggen gelukt|
public String fieldExists(String fieldName) {
// Als het element niet gevonden kan worden treed eer een exception op dus assert is niet
// nodig
try {
driver.findElement(By.id(fieldName));
} catch (NoSuchElementException e) {
return "Inloggen mislukt";
}
// sluit driver weer af
driver.quit();
return "inloggen gelukt";
}
答案 1 :(得分:0)
当你使用junit runner运行时(我希望你从maven那里做)你没有从控制台上的测试中获得详细信息。就像你在这里遇到的
我所做的是检查生成的html报告,看看究竟发生了什么,只依靠控制台检测至少一个测试没有通过(所以我知道我应该调查)。