我试图使用Watir点击Firefox中的复选框(表示为)。我从之前的测试人员那里得到了代码,此代码适用于Chrome,但不适用于Firefox。
这就是我所拥有的。
以下是导致此div的代码:
<div class="x-grid3-body" style="width:515px;" id="ext-gen201">
<div class="x-grid3-row x-grid3-row-first" style="width:515px;">
<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="width:515px;">
<tbody>
<tr>
<td class="x-grid3-col x-grid3-cell x-grid3-td-0 x-grid3-cell-first " style="width: 158px;" tabindex="0">
<div class="x-grid3-cell-inner x-grid3-col-0 x-unselectable" unselectable="on">Organisation</div>
</td>
<td class="x-grid3-col x-grid3-cell x-grid3-td-1 " style="width: 298px;" tabindex="0">
<div class="x-grid3-cell-inner x-grid3-col-1 x-unselectable" unselectable="on">Catch Software</div>
</td>
<td class="x-grid3-col x-grid3-cell x-grid3-td-scopeCheckColumn x-grid3-cell-last x-grid3-check-col-td" style="width: 53px;" tabindex="0">
<div class="x-grid3-cell-inner x-grid3-col-scopeCheckColumn x-unselectable" unselectable="on">
<div class="x-grid3-check-col x-grid3-cc-scopeCheckColumn"> </div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
我需要的是点击这个div
<div class="x-grid3-check-col x-grid3-cc-scopeCheckColumn"> </div>
我无法附加屏幕截图(评分很低),但此div是我需要点击的复选框。
这段代码适用于Chrome:
@browser.div(:class => 'x-box-inner', :index => 1).table(:class => 'x-grid3-row-table').td(:text => 'Organisation').parent.td(:index => 2)
但是在Firefox中我可以看到Watir只是点击整个父div(可以看到选择出现在浏览器中),而不是复选框div。
谢谢。
答案 0 :(得分:0)
首先,你所展示的html中只有一个元素有'x-grid3-cc-scopeCheckColumn'类,所以你不能这样做:
@browser.td(class: 'x-grid3-cc-scopeCheckColumn').click
如果没有,你可以大大简化你的元素位置以获得你想要的td,因为只有一个td有文本'Organization',而.parent只会获得它上面的td,但它看起来像你想要上面的tr标签,所以也许你想要:
@browser.td(text: 'Organisation').parent.parent.td(index: 2)
答案 1 :(得分:0)
在Firefox中使用XPath为我工作:
@browser.div(:xpath, "//*[@id='ext-gen201']/div/table/tbody/tr/td[3]/div/div").click
我能够使用.flash
来代替.click
来验证它,因为你的div只包含一个空格而且没有其他东西可以看到。