2017-10-06 42 views
0

下面的mwthod用於在我的頁面工廠模型中創建動態元素。我將IOSClassChain值作爲字符串傳遞,然後將其轉換爲元素。當元素出現在頁面上時,這可以正常工作,但當元素不存在時,它會返回null。下面是方法:如果找不到元素,我不希望此方法返回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'`]" 

有什麼建議?

+4

那麼你想要它返回什麼?或者它應該不會返回,而是拋出異常呢? –

+1

使用可選的

+0

可選項是恕我直言,不是合理的異常處理的適當替代.... –

回答

0

那麼它應該返回什麼呢?在catch塊中添加return語句(並刪除throws聲明)或完全刪除try-catch-block並將Exception丟給調用者。

這是btw認爲使用catch (Exception e)錯誤的編碼風格,更具體地抓住Exception(如IOException)。

+0

即使我在catch塊中寫入return語句,該方法也應該有一個return語句作爲其最後的語句,否則它將顯示編譯錯誤。相反,我想知道是否可以在這裏創建一個虛擬元素,我可以傳遞給'objElement',這樣這個方法永遠不會返回null。 –

+0

就像這樣:'objElement = dummyElementCreated' –

相關問題