2017-10-06 13 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

妥当な例外処理のためにIMHOは適切な代替手段ではありません.... –

答えて

0

代わりに何を返す必要がありますか?キャッチブロックにreturnステートメントを追加(およびスロー宣言を削除)するか、try-catch-blockを完全に削除してExceptionを呼び出し元にスローします。

catch (Exception e)を使用すると悪いコーディングスタイルとみなされ、より具体的なException(たとえばIOException)をキャッチします。

+0

return文をcatchブロックに書き込んでも、メソッドは最後の文としてreturn文を持つ必要があります。それ以外の場合は、コンパイルエラーが表示されます。代わりに、ここで私が 'objElement'に渡すことができるダミー要素を作成できるかどうかを知りたかったので、このメソッドはnullを返すことはありません。 –

+0

このようなもの: 'objElement = dummyElementCreated' –

関連する問題