2016-12-14 7 views
0

以下の表の構造に複数の列の値を持つ多くの行が含まれているとします。特定の行の親を特定する必要があります。特定の行はセルを使用して識別する必要があります。反復なしでテーブル内の特定の行の親をフェッチする

<table class = 'grid'> 
<thead id = 'header'> 
</thead> 
<tbody> 
<tr> 
<td> 
<span class="group"> 
    <span class="group__link"><a class="disabledlink"">copy</a> 
    </span> 
</span> 
</td> 
<td class="COLUMNNAME">ACE</td> 
<td class="COLUMNLONGNAME">Adverse Childhood Experiences</td> 
    <li>Family Medicine</li> 
    <li>General Practice</li> 
</td> 
<td class="COLUMNSEXFILTER">Both</td> 
<td class="COLUMNAGEFILTERMIN">Any</td> 
<td class="COLUMNTYPE">Score Only</td> 
</tr> 
<tr> 
<td class="nowrap" showactionitem="2"> 
<span class="group"> 
    <span class="group__link"><a onclick="Check()" href="#">copy</a> 
    </span> 
</span> 
</td> 
<td class="COLUMNNAME">AM-PAC</td> 
<td class="COLUMNLONGNAME">AM-PAC Generic Outpatient Basic Mobility Short Form</td> 
<td class="COLUMNNOTE"></td> 
<td class="COLUMNRESTRICTEDYN">No</td> 
<td class="COLUMNSPECIALTYID"></td> 
<td class="COLUMNSEXFILTER">Both</td> 
<td class="COLUMNAGEFILTERMIN">Any</td> 
<td class="COLUMNTYPE">Score Only</td> 
</tr> 
<tr></tr> 
<tr></tr> 
</tbody></thead> 
</table> 

同様に、この表には約100行が含まれています。私は繰り返しを使用して同じことをして、それは正常に動作しています。 繰り返しなしで特定の行の親を見つけることは可能ですか?あなたは、このいずれかを使用することができます

+0

セルを使用して行を探したいですか? – Gopal

+0

あなたのコーディングも参考に追加できますか? – Gopal

+0

"特定の行の親"と言うとき、セルを含む 'tr'要素、またはセルを含む' tr'の親を取得しようとしていますか?文句は後者を示唆しますが、私はあなたが前者を望んでいると思いますか? –

答えて

0

:下記の例

親::ノード()

は、ID =「メール」の入力タグの親ノードを選択します。 例://入力[@ ID = 'メール'] /親:: *

以上も
//入力[ID @ = 'メール'] /として再記述することができます。 。

XPath tutorial for Selenium

2

ワチールはElement#parent方法を持っている、空想何のための必要はありません。

3

parentメソッドを使用すると、要素の親を見つけることができます。表のセルに位置していると仮定すると、のcellそれを呼びましょう、あなたはparentを使用して、その行を取得することができ、その後parentに別の呼び出しと行の親:複数parent呼び出しの連鎖

cell.parent 
#=> a <tr> element 

cell.parent.parent 
#=> the parent of the specific row - a <tbody> element in this case 

は退屈で困難になることができます維持する。たとえば、parentを4回呼び出して、「コピー」リンクの表セルを取得する必要があります。あなたは祖先(すなわち即時ない親)の後にある場合は、XPathを使用したほうが良いされています。うまくいけば、Issue 451は、XPathの必要性を取り除くであろう、すぐに実装されます

cell.table(xpath: './ancestor::table') 
#=> the <table> element containing the cell 

browser.link(text: 'copy').tr(xpath: './ancestor::tr') 
#=> the <tr> element containing a copy link 

。電話することができます:

cell.parent(tag_name: 'table') # equivalent to `cell.table(xpath: './ancestor::table')` 
+0

これはWatir 6.2で実装されました! http://watir.github.io/watir-6-2/ No More XPath! – titusfortner

関連する問題