我正在使用Groovy / Geb编写自动化脚本,HTML代码如下所示:
<table class="backgrid">
<thead>
<tr>
<th class="select-all-header-cell">
<input tabindex="-1" type="checkbox">
</th>
<th>
<a>
List Item<b class="sort-caret"></b>
</a>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="select-row-cell">
<input tabindex="-1" type="checkbox">
</td><td class="string-cell">CAD</td>
</tr>
<tr>
<td class="select-row-cell">
<input tabindex="-1" type="checkbox">
</td>
<td class="string-cell">
USD
</td>
</tr>
<tr>
<td class="select-row-cell">
<input tabindex="-1" type="checkbox">
</td>
<td class="string-cell">.
GBP
</td>
</tr>
<tr>
<td class="select-row-cell">
<input tabindex="-1" type="checkbox">
</td>
<td class="string-cell">
KPW
</td>
</tr>
</tbody>
</table>
我需要逐个点击内部的复选框,然后转到自动化的下一个阶段。但我被困在这里。我知道点击复选框我应该使用interact {}但是我找不到这种东西的任何示例。任何提示或建议都对我有很大的帮助!
答案 0 :(得分:2)
您无需使用interact {}
来实现它 - 使用click()
的方式更简单。
要点击标题中的复选框,您可以使用:
$("table.backgrid thead input").click()
要点击货币复选框,请使用:
def checkboxes = $("table.backgrid tbody input")
checkboxes[0].click() //CAD
checkboxes[2].click() //GBP
答案 1 :(得分:0)
[...]调用值(值)将设置导航器中所有元素的当前值。参数可以是任何类型,如果需要,将被强制转换为String。例外情况是,设置复选框值时,方法需要布尔值...
所以,我自己没有尝试过这个,但我认为如果你可以将你的html更改为类似的东西(注意我在元素中添加了 name 属性)
[...]
<td class="select-row-cell">
<input tabindex="-1" type="checkbox" name="GBP">
</td>
<td class="string-cell">.
GBP
</td>
[...]
然后下一个代码应该做的诀窍:
$("checkbox", name: "GBP").value(true) //Should set the checkbox to 'checked'