一种捕获大多数try catch语句的方法

问题描述 投票:0回答:1

在我的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;
        }
    }
}
java selenium functional-interface
1个回答
1
投票

您可以做类似的事情

public boolean executeSafely(Runnable action) {
    try {
        action.run();
        return true;
    } catch (Exception x) {
        return false;
   } 
}

然后用return executeSafely(element::click)调用。

© www.soinside.com 2019 - 2024. All rights reserved.