2017-12-12 12 views
1

午後、セレンwebdriverを - 要素をアサートし、画面上に存在しない

私が検索したが、私はセレンで抱えている問題への答えを見つけることができません。要素がページに表示されないようにする方法を見つける必要があります。基本的に、ユーザーにはさまざまなレベルの権限があり、異なるタブが表示されます。

最近、いくつかの問題があり、ユーザーには表示されないタブが正しく表示されています。要素が存在すると主張することはまったく問題ではありませんが、これはルージュタブが存在しないことを保証しません。それは難しいと証明されているので、どんな助けもこの1つで評価されるだろうし、私はこれが複雑ではないと確信している。

私たちはSelenium WebDriverを使用し、C#でテストを書いています。ありがとう、

Stu。

+1

タブをクリックして成功した場合はテストに失敗し、コードがセレン例外をキャッチした場合は続行してください。 –

答えて

0

Seleniumにはこれを少し面倒ですが、私がいつも扱ってきた方法は、要素が存在していると主張しようとしています。それは本当の問題かもしれないかもしれない他の例外をスローする場合、それが失敗するように、要素は存在しない例外です。試してみると、要素が見つかった場合に強制的に何かを追加する必要があります(何らかのアサーションが失敗することが保証されている)。 ensure rouge tabs are not present

ページヘッダが表示されていないことを確認された例(申し訳ありませんが、それは、Javaでのですが、私は前にC#で働いていない。そこに再作成するのに十分な簡単なものでなければならない)

try { 
     final boolean displayed = this.pageHeader.isDisplayed(); 
     assertFalse("Page header should not be displayed", displayed); 
    } catch (final NoSuchElementException nsee) { 
     this.log.debug("Page header is not displayed :PASSED"); 
    } 
+0

ありがとうJsmith2800。これが私が使い終わった方法です。私はIsNullの使用を検討していましたが、セレンの例外は問題がどこにあるかです。 Try Catchメソッドを使用すると、最初の投稿、最初の修正が問題を解決しました。 – StuChee

1

次のことができます

012以下から ExpectedConditions句のいずれかを使用します

ExpectedConditions.InvisibilityOfElementLocatedは、要素がDOMに表示されないか、存在しないかどうかをチェックするために使用できます。

戻り値:それ以外の要素が表示されていない場合truefalse

ExpectedConditions.InvisibilityOfElementWithTextは、テキストを持つ要素がDOMに存在する目に見えないかのいずれかであることを確認するために使用することができます。

戻り値:それ以外の要素が表示されていない場合truefalse

1

WebDriverのfindElementsメソッドを使用すると、WebElementsのListが0としてサイズを返した場合、要素の数をアサートすることができます。

関連する問題