java - 一种捕获大多数 try catch 语句的方法
问题描述
在我的 UI java 测试框架中,我有很多方法正在尝试捕获元素操作,如单击、发送键等,并在操作成功时返回 true,在发生任何异常时返回 false。我想知道是否有任何更聪明的方法可以将方法作为参数传递,并且在该方法中使用 try catch 语句围绕该代码。这样代码就可以更简单、更清晰地阅读(可能是 Java 8 功能接口)。
public boolean expandPanel(String panelHeading) {
boolean panelFound = false;
try {
getElement(PanelHeadings.fromString(panelHeading)).click();
panelFound = true;
} catch (Exception e) {
panelFound = false;
}
return panelFound;
}
我确实尝试过创建一个动作类并为 click、sendKeys 等定义不同的方法。但是有没有办法让我只有一个 try catch 方法并将代码或行为传递给该方法。
public boolean expandPanel(String panelHeading) {
return actions.click(getElement(PanelHeadings.fromString(panelHeading)));
}
public class WebElementActions {
public Boolean click(WebElement element) {
try {
element.click();
return true;
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
}
解决方案
你可以做类似的事情
public boolean executeSafely(Runnable action) {
try {
action.run();
return true;
} catch (Exception x) {
return false;
}
}
然后用return executeSafely(element::click)
.
推荐阅读
- json - 如何捕获 JSON 响应中的匿名密钥并存储在结构中?
- php - 当响应代码未硬编码时,预检请求失败 CORS(没有 HTTP 请求 OK 状态)
- java - @SpringbootTest 中缺少 /actuator/prometheus
- python - 如何在使用 django ORM 加载数据之前强制列 dtype
- servicenow - 如何获取当前目录任务阶段或确定下一阶段?
- reactjs - 为什么在 next.js 中使用硬编码的 api-key 获取数据但不能使用环境变量?
- python - 如何在简单的逻辑回归神经网络中计算误差?
- asp.net - 与印度用户条纹美元货币
- javascript - 显示不同的语言文本
- vba - Is there a way of inserting a flow chart into a word document using access vba?