在watir-webdriver中定位元素在另一个元素的同一段中

时间:2011-06-22 11:32:40

标签: ruby watir browser-automation watir-webdriver

给出以下HTML代码段;在按ID找到链接后,您如何选择同一段中的复选框? 例如,如果我想选择与ID =“inst_17901-1746-1747”的链接相关联的复选框。

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
    }  

1 个答案:

答案 0 :(得分:2)

如果段落中只有一个带有链接的复选框:

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

与watir-webdriver一起使用,不确定它是否适用于其他Watir宝石。

相关问题