2017-02-09 10 views
0

WebDriverで堅牢なキャッチメソッドを使用するには?WebDriverで使用する強力なキャッチメソッドを試してみませんか?

  1. 次のような方法は、要素の検索がタイムアウトを取得または不正確なロケータが使用されている可能性の高いシナリオで正しく見えるかどうかがexperieceから誰かのアドバイスはできますか?

    public void clickSupercarsLink() throws Exception { 
        try { 
         this.wait.until(ExpectedConditions.elementToBeClickable(link_Supercars)).click(); 
        } catch (TimeoutException e) { 
         System.out.println("UNABLE TO FIND ELEMENT : Timeout"); 
        } catch (Exception e) { 
         System.out.println("UNABLE TO FIND ELEMENT : Exception"); 
         throw (e); 
        } 
    } 
    

  2. dosntタイムアウト例外は、私が2秒に待ち時間を設定した後、私のSystem.out.printlnを印刷することと間違ったのxpath

マイコードでロケータを変更するように見えます

新しいコード:

public void clickSupercarsLink() throws Exception { 
    try { 
     this.wait.until(ExpectedConditions.elementToBeClickable(link_Supercars)).click(); 
    } catch (TimeoutException e) { 
     System.out.println("Timed out attempting to click on element: <" + link_Supercars.toString() + ">"); 
    } catch (Exception e) { 
     System.out.println("Unable to click on element: " + "<" + link_Supercars.toString() + ">"); 
    } 
} 
+0

あなたは 'TimeoutException'のケースで転覆したくないですか? –

+0

@Andy Turnerあなたは何をアドバイスしますか?もし私が例外を再現すれば、これは何をするだろうか(申し訳ありませんが愚かな音) – Gbru

+0

あなたは何をしようとしているのか分かりません。私は、リンクがクリックされていなくても、メソッドが 'TimeoutException'の場合に正常に返ることを指摘しています。 –

答えて

1

@ Philあなたはその例外をスローして、それを高いレベルで処理したいと思うでしょう。現在のシナリオでは、致命的な例外がある場合は、メソッドclickSupercarsLinkを呼び出すテストメソッドは例外があることを認識しません。

あなたは例外をスローしているにもかかわらず、なぜそれをキャッチして、何もしないで印刷するだけです。これが例外をスローする理由ではありませんか?

public void clickSupercarsLink() throws Exception { 
this.wait.until(ExpectedConditions.elementToBeClickable(link_Supercars)).click(); 
} 
+0

ok @Mayur Shahあなたの経験に基づいて、上記のことにどのような変更を加えますか、ごめんなさい、例外処理を少し厄介なものにする、ありがとう、もう一度 – Gbru

+0

これはあなたができる最高です。 –

+0

ok @Mayur Shahあなたの助けをありがとう – Gbru

関連する問題