2012-05-22 7 views
6

を確認するためにどのように私は以下の内容が含まれるHTMLページがあります。セレンwebdriverを - 複数行のテキスト

<center> 
      This is Login page. 
      <br> 
      Please click below link to Login. 
      <br> 
      <a href="xxx">Login</a> 
    </center> 

どのように私は1つのwebdriverをコマンドを使用して上記のすべての静的なテキストを確認することができますか?

私はこれらを試してみましたが、それのどれも機能しません:(

driver.findElement(By.xpath("//*[contains(.,'This is Login page.<br>Please click below link to Login')]")) 
driver.findElement(By.xpath("//*[contains(.,'This is Login page.\nPlease click below link to Login')]")) 

それを行う方法を誰もが知っているあなたが行うことができます

答えて

6

:?

webDriver.findElement(By.id("<ID of center tag>")).getText().contains("This is Login page.Please click below link to Login.Login"); 

はのロケータを使用してお気軽にBy.idの代わりにあなたの選択を行います。

基本的に、どのWebElementのgetText()もノード、すべてのHTMLタグとコメントを削除しました。

+0

ありがとうございました。 getText()が非常に便利であることを知りました:) –

1

これは、セレスのXPathの制限です。

私はあなたがそこにグローバルなXPathのセレクターを使用している理由は、より良いのXPathセレクタのようになります表示されません。

By.XPath("//center"); 

それだけで「センター」ページ上のタグ、または偶数の場合:

By.XPath( "// center [contains(text()、 'これはログインページです"')

盲目的に検索する代わりに/ rと/ n文字をコードで使用すると、それはXPathです。

+0

グローバルXPathセレクターを使用します。これは、共通のライブラリ内のテキストをチェックするためのコードです。おそらく私は、特定のタグに基づいてテキストをチェックするために、共通のライブラリに別の方法を用意する必要があります。しかし、質問に戻って、私はこれのようにスムーズを行うべきであることを意味する: –

+0

はい、私は/ rと/ n(改行とキャリッジリターン)文字を含めずにそれを見つけることを試みるだろう、上記のように)、要素を取得した後にテキストをチェックします。後でコード内でその構造をチェックする方がはるかに簡単です。これに失敗すると、センタータグにIDを追加し、Ashwinの答えを使用することができます。 – Arran

+0

okが表示されます。私はそれを試してみるとありがとうございます:) –

-1

テキストの中にスペースがある場合、そのテキストを見つける方法。

 <br> 
     <br/> 
     Please click below link to Login. 
     <br> 
     <a href="xxx">Login</a> 
</center> 
+0

別のページで解決策を見つけました。誰かが私と同じ問題を抱えている場合。このリンクを使用してください:https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs解決策は次のとおりです:Assert.assertEquals( "メールは空です。\ n電子メールを入力してください!"、ドライバ。 findElement(By.xpath(XXXXXXXX))。gettext()); – Bibek

関連する問題