我正在使用 Java 中的 Web 驱动程序创建测试用例。如果未导航所需的网址,我需要捕捉情况。以下是代码
try{
driver.get("url");
} catch(Exception e) {
System.out.println(e.getMessage);
}
我的要求是在我无法获取页面的任何情况下处理异常。
提前致谢。
我正在使用 Java 中的 Web 驱动程序创建测试用例。如果未导航所需的网址,我需要捕捉情况。以下是代码
try{
driver.get("url");
} catch(Exception e) {
System.out.println(e.getMessage);
}
我的要求是在我无法获取页面的任何情况下处理异常。
提前致谢。
driver.get(url)
driver.get()
如果您包含的 url导致错误的页面,则不会抛出异常。
您将需要使用driver.getCurrentURL()
来检查生成的 URL 是什么,并将其与您的预期 URL 进行比较。
例如,您可以将其包含在类的构造函数中(如果您使用的是设计模式,则为 PageObject):
if (!driver.getCurrentUrl().equals(loginURL)) {
throw new IllegalStateException(
"This is not the login page. Current page" + "is: "
+ driver.getCurrentUrl());
另一种方法可能是验证代表预期页面的元素的存在。如果没有找到,则抛出异常。
试试这个:
boolean present = false;
String pageName = driver.getTitle();
if(pageName.equals("Gmail: Email from Google")){
present = true;
}
Assert.assertTrue(present, "Error during loading of Landing Page");
如果未加载所需的页面,它将引发断言错误。
您可以在应用程序中配置自定义错误处理页面。在您的应用程序中拥有自定义错误处理或异常处理页面是一种很好的做法。
在您的情况下出现 404 错误
在 web.xml 中添加以下内容
<错误页面>
<错误代码>404 </错误代码>
<location>/error404.jsp </location>
</错误页面>
//-------------------
并制作一个自定义错误处理jsp页面error404.jsp
在页面指令中设置 isErrorPage="true"。
阅读更多搜索谷歌的 isErrorPage 页面