2017-04-13 11 views
0

私は要素を探していますが、要素が存在しない場合は、 "要素が存在しません"と言ったまともなエラーメッセージを出したいと思います。それはブロックの外に出て、xpathの要素が見つからないようなメッセージを投げます。分度器 - キャッチエラー処理を試してください

以下は私が試したコードですが、同じエラーが発生しています。 たとえばa =分度器であり、その値が存在する場合は、テキストが優先します - 分度器です。それは代わりに存在していない/エラーが発生した要素を言っての、存在しない場合は、ケースにはそれが「どの要素がこの

this.gridverify = function (a) { 
 
     browser.sleep(10000); 
 
     try {    
 
      var elm = element(by.xpath("//div[@title='" + a + "']")); 
 
      if (elm.isPresent) { 
 
       elm.getText().then(function (x) { 
 
        console.log("text Prevails: " + x); 
 
       }) 
 
      } 
 
      else {     
 
       console.log('element not present'); 
 
      } 
 
     } 
 
     catch (err) { 
 
      console.log('error occured'); 
 
     } 
 
    }

+0

あなたのxpathの 'div [@title = '"分度器 "']'を見てください。これは '/ div [@ title = 'protractor']'でなければなりません。あなたは私を得ていますか? –

+0

@KishanPatel、それを調べてくれてありがとう。ペーストしたものをコピーすると、それが起こりました。それは問題ではありません。私は正しいものを渡しました。 – kavitha

+0

あなたは手動でそのページに行き、同じ 'xp​​ath'で検査して、要素が見つかったかどうかを調べます。 '//div [@title = '" protractor "']' –

答えて

0

を考えてみましょうどのように解決するには。element(by.xpath("//div[@title='"protractor"']"))は大きなエラーメッセージが続い見つからないと言います約束により深く掘る。あなたのコードは、エラーをたくさん持っている。http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/promise.html

this.gridverify = function (a) { 
    browser.sleep(10000); // Why this needed? Can you update to .wait() ? 
    var elm = element(by.xpath("//div[@title='" + a + "']")); 
    elm.isPresent().then(present => { 
     if (present) { 
      elm.getText().then(function (x) { 
       console.log("text Prevails: " + x); 
      }) 
     } else { 
      console.log('element not present'); 
     } 
    }, err => { 
     console.log('error occured', err); 
    }) 
} 

あなたのtry/catchを使用して、非同期コードで期待通りに動作しません。

+0

checkkingのためにthankyou ...リンクを見て、試してみましょう – kavitha

関連する問題