使用Watir有标题错误 需要设置复选框:
<label for="adr-eq" class="checkbox">Ok</label>
适用于:
ff.element(:css => 'label.checkbox:nth-child(12)').click
但为什么它不起作用:
ff.checkbox(:for => 'adr-eq').set
ff.element(:for => 'adr-eq').click
答案 0 :(得分:1)
Watir仅允许使用对元素类型有效的属性(基于HTML规范)定位元素。 for
属性对所有元素或输入元素无效。因此,您获得了Watir::Exception::MissingWayOfFindingObjectException
。
如果你看一下你想要与之交互的HTML,以及工作的CSS选择器,元素类型就是一个标签。 for
属性对标签(以及其他几个元素)有效。因此,如果您告诉Watir找到标签元素,则可以使用:for
定位器。
使用for
属性点击标签:
ff.label(:for => 'adr-eq').click
如果您想使用Checkbox#set
方法,则需要按id
属性找到元素,该属性应与for
属性匹配:
ff.checkbox(:id => 'adr-eq').set