2017-07-27 12 views
-1

'inspect要素'タブ内にクラスとテキストのみを提供するヘッダータイトルのxpathを取得する必要があります。JavaでSelenium Webdriverのヘッダータイトルのxpathを見つける方法

目標は、ページのタイトルが目的のヘッダーと一致するかどうかを確認するためのif文を使用して、Seleniumにコマンドするコードを実行できるようにすることです。私が単に "linkTextによるweb要素の検索"を使用しないのは、ヘッダーの実際の内容がさまざまなページで表示できるためです。したがって、テキストは常に存在するので、私のコードは常に実行されます。クラス名はすべてのページで同じなので、私はクラスを使うことはできません。

特に、クラス名とテキストの両方を使用しているヘッダーそのものである必要があります。

私は試しました if(driver.findElements(By.xpath("//*[@class='className' and contains (text(),'headerText')]")) !=null)しかし、ヘッダーテキストが一致しなくても実行を続けます。私はそれが異なる要素であるにもかかわらず、技術的にクラスが存在していると思うし、テキスト自体も存在すると信じている。

+1

一致する要素を含むHTMLの例を教えてください。 –

+0

IMOでは、2つの異なるアイテム/要素を混在させています。それは 'Page Title'か' Page Header'です。ヘッダータイトルが意味をなさないかどうかはわかりません。 – DebanjanB

+0

@DebanjanB申し訳ありませんが、私はちょうどページヘッダーを意味することを意味しました。 – gotj

答えて

0

が二つの可能ポイント:

  1. driver.findElements(..)はnullになることはありません。一致する要素が見つからない場合は、空のコレクションを返します。したがって、何も見つからない場合にはdriver.findElements(..).isEmpty()を使用してください。
  2. 要素が見つからない場合は、contains(text(),'headerText')の代わりにcontains(.,'headerText')を使用してみてください。最初のオプションは、ヘッダーテキスト要素に子タグ/書式設定タグが含まれている場合に機能します。
+0

私はあなたの第二の選択肢を試してみて、不思議に思った。ありがとう! – gotj

関連する問題