如果找不到元素,我不希望此方法返回null

时间:2017-10-06 15:23:19

标签: java automation appium xcuitest page-factory

以下mwthod我用来在我的页面工厂模型中创建动态元素。我将IOSClassChain值作为字符串传递,然后将其转换为元素。当元素出现在页面上时,这可以正常工作,但是当元素不存在时返回null。以下是方法:

public MobileElement mobileElementUsingIOSClassChain(String objElement) throws IOException {

    MobileElement objMobileElement = null;

    try {
        objMobileElement = (MobileElement) ((AppiumDriver) GetDriver()).findElement(ByIosClassChain.iOSClassChain(objElement));

    } catch (Exception e) {
        System.err.println("Element not found");
    }
    return objMobileElement;

}

我为objElement传递的值是:

String elementStr = "**/XCUIElementTypeButton[`label=='Name'`]"

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

那么应该返回什么呢?在catch块中添加return语句(并删除throws声明)或者完全删除try-catch-block并将Exception抛给调用者。

使用catch (Exception e)被认为是错误的编码风格,而是更加具体Exception(如IOException)。