2016-06-25 7 views
0

私は1つのアクションボタンを持っていると考えてください。このアクションボタンは入力条件に基づいて2つの結果を与えます。無効なデータが提供されている場合、いくつかの検証エラーがメッセージテーブルにスローされ、有効なデータが提供されている場合、メッセージテーブルは存在せず、別のセクション、つまりメッセージテーブルが無効データ入力に対してのみ表示され、有効なデータに対しては表示されません。Web要素の確認と確認の方法はWebページでは利用できません。

コード:

driver.findElement(By.name("MessageTable")).isDisplayed() 

有効なデータが入力された場合、メッセージ・テーブル・セクションが表示されませんので、、

"no such element: Unable to locate element: 
{"method":"name","selector":"MessageTable"}". for the above code. 

としてエラーを取得することは、あなたが私を助けてもらえ、どのようにすべきメッセージテーブルがWebページに存在しないことを確認しますか?

答えて

1

AFAIK、Webdriver API、いいえ要素がページに存在しないかどうかを確認するための直接的な方法が提供されています。

あなたのケースでは、有効なデータが送信されており、検証メッセージがページに存在しないことを確認する必要があります。しかし、それはあなたが明らかにページ内のその要素を見つけることができないfindElement()メソッドを使用しており、要素が存在しないときに予期される例外がスローされます。

ソリューション: -

あなたはこの例外をキャッチし、テストごとにブール値を返すためにカスタムメソッドを書くことができます。

public boolean isValidationMsgNotExist() { 
    try { 
     driver.findElement(By.name("MessageTable")); 
     return false; 
    } catch (NoSuchElementException e) { 
     return true; 
    } 
} 

あなたは、パラメータとしてWebElementを受け取り、それが存在するかどうかを確認するための方法の上、変更することができます。

+0

上記のロジックが私に役立った。両方のおかげで! – Subburaj

+0

喜んで助けました。 – Amol

0

または、driver.findElements(Locator).size()を試すことができます。 sizeが1の場合、要素が見つかるなどします。

+0

size()関数を使用しようとしましたが、それは私のために働いておらず、No such Element Exceptionを取得していません。私はこの例外を処理してシナリオを達成しました – Subburaj

0

私はこれを通常行います。

List<WebElement> messageTable = driver.findElements(By.name("MessageTable")); 
if (messageTable.isEmpty()) 
{ 
    // the message table was NOT found 
    // do stuff 
} 
関連する問題