2017-01-12 5 views
-2

私は、ユーザー情報で自動的に生成されるダイナミックスを埋めようとしています。だから私は、そのフィールドの他の条件を設定したいと思う。だから私は、ステップdefenitionであれば、他のループを使用していますが、条件の真のOKコードexcute場合は条件が他のループに陥っコードがSelenium - webdriverテストif-elseループスタック/エラー

コードを助けるwhy.Please失敗した場合、」

\t @And("^Input Height in add report$") 
 
\t public void Input_Height_in_add_report(DataTable newHeight) throws Throwable { 
 
\t \t 
 
\t \t 
 
\t \t if(driver.findElement(By.xpath("//label//span[contains(text(),'Height')]")).isDisplayed()){ 
 
\t \t \t Thread.sleep(2000); 
 
\t \t \t List<List<String>> data = newHeight.raw(); 
 
\t \t \t driver.findElement(By.xpath("/html/body/div[1]/div/div/div[2]/form/div[7]/div[1]/div/div/input")).sendKeys(data.get(1).get(1)); 
 
\t \t \t \t } 
 
\t \t else{ 
 
\t \t \t 
 
\t \t } 
 
\t 
 
\t }
以下である場合と仮定します

+0

はい、私は知っていますが、そのループに固執しています。それは次のステップには向かない。 –

+0

問題が 'else'ブロック内にある場合は、そのコードを投稿し、問題の内容を正確に指定する必要があります。 – Guy

答えて

0

問題はfindElementの要素を見つけた場合if文、それが行くということですが、それはそれはNosuchElementFound例外を与える要素を見つけるdoenst。このヨーヨーを処理するには場合はelseでコードを実行するためのtry-catchをブロックを使用することができ、チェック以下:

@And("^Input Height in add report$") 
public void Input_Height_in_add_report(DataTable newHeight) throws Throwable { 

    try { 
    if(driver.findElement(By.xpath("//label//span[contains(text(),'Height')]")).isDisplayed()){ 
     Thread.sleep(2000); 
     List<List<String>> data = newHeight.raw(); 
     driver.findElement(By.xpath("/html/body/div[1]/div/div/div[2]/form/div[7]/div[1]/div/div/input")).sendKeys(data.get(1).get(1)); 
    } 
    } 
    catch(Exception e) { 

    // your else code should be here 

    } 
} 
+0

else条件用に他のコードを実行したくない場合は、空白のままにしておきます。 –

+0

@MithuKhan必要に応じて、後でデバッグのための例外を印刷またはログに記録することができます。あなたは答えを受け入れることができますか? –

+0

答えを受け入れる前に、あなたのコードでテストを実行したいと思います。 catch(){}を残しておきますと、 空白が問題なのですか?今では問題になるだろうか、私は実行する必要があるとして、私は他のコードで キャッチ(例外e){ //あなたの他のコードはここに でなければなりません} 休暇を何も書いていない場合、私は意味します他の条件でコードを書く。 –