2016-12-19 7 views
1

私は<bean:define>タグを含むWebタイプのアプリケーションを持っています。私はfirepathXPath作成を通じてこのタグを識別するソリューションを探しています。セレンxpath - <bean:define>タグ名を使用して要素を見つける

このタグに関する情報を掘り下げると、Strutsでidとvalueのパラメータに基づいて範囲を設定するために使用されていました。また、このタグに関する議論は起こっていません。言及したWebページの構造の下

<bean:define id="loggedInUserUserName" name="loggedInUser" property="firstName"> 
<iframe id="frame_admin_console" class="noautowidth" name="sample_1" rel="col1" scrolling="auto" t_src="scriptPath" style="visibility: visible; height: 861px; width: 1608px;" src="srcPath=" height="iframe_height" frameborder="0" width="100%"> 

私は

.//*bean:define[@id='loggedInUserUserName']/./iframe[@id='frame_admin_console'] 

Xpathを作成することにより、iframeを見つけるためにしようとしたが、これは私にfirebugで有効なxpathを与えませんでした。

DOM要素が<bean:define>タイプの場合は、XPATHをセレンのWebドライバで作成してください。ここ

答えて

0

あなたがIDを持っている場合は、idを使用した方が良いですが、いくつかの例です:

//*[@id='loggedInUserUserName']//iframe 

//iframe[@id='frame_admin_console'] 

//*[@id='loggedInUserUserName']//iframe[@id='frame_admin_console'] 

あなたはこれらのいずれかを使用することができ、私は直接のiframeを選択するために第2の1を使用することをお勧め。

iframe内の要素を操作/確認する必要がある場合は、まずiframeに切り替える必要があります。ここで

+0

誠実が私を与えるために称賛 - :あなたの目標はiframeに切り替えされている場合でも、あなたは単にiframeは(id属性値が一意である場合)、それは(あなたは、Javaを使用していると仮定すると)以下のようにid属性値だ使用していることを切り替えることができます良い例ですが、私はそのタグを含めることによってXPathで "bean:define"タグを識別するユニークな方法をもっと探しています。 – ajesh

0

bean:definedタグ

//*[@name="loggedInUser"] 

を見つけるためにあなたのXPathであるしかし、私はあなたがframes

driver.switchTo().frame(0); // switching in frame (Here I am using index) 

// your code for interacting with element inside frames 

driver.switchTo().defaultContent(); // switching back from a frame 
+0

あなたの迅速な対応に本当に感謝しますが、私は "bean:define"タグを識別するソリューションを探しています。私が作成することを認識しているように、代わりの方法ではありません。 – ajesh

1

と対話するためにこの方法を使用する必要があると思う私はDOMを見つけることができます任意の方法はありますBeanの要素:セレンのWebドライバで 'XPATH'を作成して型を定義しますか?

あなたは以下のように同定するために使用するxpathname()機能を使用してタグ名のこのタイプの要素を見つけることができます: -

//*[name() = 'bean:define'] 

以上の特定

//*[name() = 'bean:define' and @id = 'loggedInUserUserName'] 

.//*bean:define[@id='loggedInUserUserName']/./iframe[@id='frame_admin_console ']のXpathを作成してiframeを検索しようとしましたが、これは私に火かき棒の有効なxpathを与えませんでした。

すると以下のように使用します。 -

//*[name() = 'bean:define' and @id = 'loggedInUserUserName']//iframe[@id='frame_admin_console'] 

リファレンスname(node-set?)

を設定し、現在のノード内のパラメータまたは現在のノードとして渡されたノードセットのいずれかの完全なテキストノード名を返します。

これは情報目的に適しています。

driver.switchTo().frame("frame_admin_console"); 
+0

共有参照とあなたの回答をありがとう。しかし、残念ながら、** name()**関数で要素を見つけることができませんでした。 FirepathにもWebDriverにもありません。 – ajesh

+0

FirepathやWebDriverのどちらにもありません。 org.openqa.selenium.NoSuchElementException:そのような要素がありません:要素を見つけることができません: ""メソッド: "xpath"、 "selector": "// * [name()= 'bean:define']"} – ajesh

+0

@あなたが探したい要素がフレーム/ iframeの外側にあることを確認してください。 –

関連する問題