我试图在下面给出的代码中使用可抛出的类&由于某些原因,它在特定的场景中没有捕获到异常。我的测试用例是在安全搜索模式开启后验证google搜索页面上的特定文本。因此,基本上我将文本'SafeSearch on‘(如果安全搜索打开,我们通常会在谷歌页面设置按钮旁边看到)与该位置的Xpath匹配。我使用断言。当系统上有“SafeSearch on”文本时,我的测试用例执行得很好&当实际字符串值与预期字符串值不匹配时。但是,如果文本未列出,则在执行后,Catch块不会捕获异常。我的代码在尝试使用xpath查找文本时卡住了。一旦我手动关闭浏览器,它就会给我一条消息'Text Not Matched - Null‘。我期望浏览器关闭&在输出中,我应该捕获到Null异常。在这种情况下,有人能帮我吗?下面是我的代码片段
String S1 = "//*[@id='ab_ctls']/li[1]/span";
String S2 = "SafeSearch On";
System.out.println("Test before search");
try {
Assert.assertEquals(d1.findElement(By.xpath(S1)).getText(),S2);
System.out.println("Text Matched");
} catch (Throwable e){
System.out.println("Text not Matched"+"---"+ e.getmessages());
}
d1.quit();发布于 2014-03-18 12:58:21
Throwable将捕获所有内容。你应该捕获异常而不是抛出,因为使用throwable你捕获的是异常加上错误。
try{
//....
}catch (Exception e){
// Do Something
}Java中的异常层次结构

这将对Why catch Exceptions in Java, when you can catch Throwables?有所帮助
https://stackoverflow.com/questions/22470122
复制相似问题