民间,
我正在使用watir-webdriver,我在我的HTML DOM中有一个部分,当我输入一些凭据时,它会立即生成,这个部分有一堆复选框,复选框的数量不同,我必须选择一个复选框,下面是一个例子,这里我想选择第二个复选框(隐藏输入类型的值为“BS”的复选框,但输入类型的值复选框对所有人都相同):
<li class="dir">
<input type="checkbox" value="1" onclick="$(this).next('.should_destroy').value = (this.checked?0:1)" name="should_not_destroy">
<input class="should_destroy" type="hidden" value="1" name="import[dir_attributes][][should_destroy]">
<input type="hidden" value="" name="import[dir_attributes][][id]">
<input type="hidden" value="Automation" name="import[dir_attributes][][path]">
<span class="dir_mode">Include</span>
Automation
</li>
<li class="dir">
<input type="checkbox" value="1" onclick="$(this).next('.should_destroy').value = (this.checked?0:1)" name="should_not_destroy">
<input class="should_destroy" type="hidden" value="1" name="import[dir_attributes][][should_destroy]">
<input type="hidden" value="" name="import[dir_attributes][][id]">
<input type="hidden" value="BS" name="import[dir_attributes][][path]">
<span class="dir_mode">Include</span>
BS
</li>
我可以用XPATH做到这一点,但想尝试非XPATH解决方案。隐藏的输入类型具有我需要的适当值,例如,在第二个复选框上方,隐藏输入类型的值为“BS”。我尝试使用这样的隐藏方法:
h = @@browser.hidden(:value, "BS")
h.select
但我不知道在此之后该怎么办。我试图根据隐藏元素的值选择复选框。任何反馈都非常感谢。
答案 0 :(得分:1)
我建议改用可见元素。我认为这样可以更容易地阅读测试并且看起来更稳定。
尝试:
@@browser.li(:class => 'dir', :text => /BS/).checkbox.set
答案 1 :(得分:0)
我们走了,我想这会做到
由于您必须根据隐藏选择复选框,因此您必须升级到包含li的关卡,然后向下钻取到复选框
@browser.hidden(value: 'BS').parent.checkboxes.first.set