2011-06-22 63 views
3

給定以下HTML代碼片段;在通過ID找到鏈接後,如何選擇同一段中的複選框? 例如,如果我想選擇與ID =「inst_17901-1746-1747」鏈接關聯的複選框。在watir-webdriver的另一個元素的相同段落中查找元素

DIV 中段落的順序在會話之間不一致因此我無法通過複選框的索引或ID選擇它。

<div id="inst-results"> 
<p> 
<input id="inst-results0-check" type="checkbox"> 
<a class="ws-rendered" id="inst_17901-1746-1747" title="!!QA Data 2/DOOR FURNITURE/316 Stainless - Altro Range"><img src="http://yr-qa-svr2/Agility/ACMSImages?type=objectType&amp;objectTypeID=32"> <span>!!QA Data 2/DOOR FURNITURE/316 Stainless - Altro Range</span></a> 
</p> 
<p> 
<input id="inst-results1-check" type="checkbox"><a class="ws-rendered" id="inst_17882-1746-1747" title="!!QA Data/DOOR FURNITURE/316 Stainless - Altro Range"><img src="http://yr-qa-svr2/Agility/ACMSImages?type=objectType&amp;objectTypeID=32"> <span>!!QA Data/DOOR FURNITURE/316 Stainless - Altro Range</span></a> 
</p> 
</div> 

我想出瞭解決這個問題的解決方案,但是Zeljko解決方案好多了。

$browser.div(:id,"inst-results").ps.each { |para| 
     if para.link.text == "!!QA Data/DOOR FURNITURE/316 Stainless - Altro Range" then 
      para.checkbox.set 
      break 
     end 
    } 

回答

2

如果只有一個與連桿的段落複選框:

browser.link(:id => "inst_17901-1746-1747").parent.checkbox.set 

作品與的Watir-webdriver的,不知道這是否會與其他的Watir寶石工作。

+0

謝謝,這應該工作,因爲每個段落應該只有一個複選框。 –

+0

如果有多個需要指定複選框的(如何,什麼)。如果你沒有更好的東西,這可能是索引。雖然我懷疑在那種情況下至少會有關聯的文本,所以用戶知道每個複選框做了什麼(而不是兩個裸體複選框) –

相關問題