无效属性: :for (Watir::Exception::MissingWayOfFindingObjectException)

invalid attribute: :for (Watir::Exception::MissingWayOfFindingObjectException)

使用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

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