selenium webdriverio checkbox和radiobox checkbox的value和checked属性

网页上有时候遇到checkbox和radio,一般情况下这两种都是input标签,我们可以通过点击或者发送空格的方式进行选中

 

当然,选中和判断是否选中还有其他的方法,如模拟鼠标点击、用js选中、修改标签属性选中;用js、jQuery判断是否选中、用标签属性判断是否选中,不过针对大部分情况,以上方法足够用了。如果以上方法失效,可以考虑直接修改或获取标签属性,或者可能是其他因素如等待时间、页面遮挡等导致无法选中,可进行更多尝试

 

一 、checked属性

checked属性代表的是当前checkbox是否被选中,如果选中返回true,未选中返回false。和value值无关。

<input class="fd-switch__input" type="checkbox" checked=""> 

checked只代表页面刷新时,checkbox处于选中状态。checked的属性返回true;
此时,点击checkbox使其处于非选中状态,html代码没有变化(checked依然源码上)。但checked的属性返回false;
html中出现checked字样,代表刷后新选,和checked=“任意值”无关。哪怕checked=“false”,刷新时,checkbox仍然是选中状态。可以理解为checked之后的属性值都是没意义的。

$x('....//input')[0].checked

flag = $(..//input').isSelected();

  1. html中checked意味着页面加载时,让该checkbox元素的checked属性为true,页面显示选中状态。
  2. 在提交表单时判断表单是否选中的标准是document.getElementById(“checkbox1”).checked返回true还是false。和html页面内容无关。

二 、value属性

<p><input type="checkbox" name="vehicle" id="checkbox1" /> I have a car</p>

alert(document.getElementById("checkbox1").value);

value的属性代表checkbox提交给表单的值。

  1. value如果没有设置,则默认value的值是“on”。如果设置,自然value就是设置的值。
  2. value的值和表单是否选中无关。 无论表单是否选中,checkbox的值都是一样的。
posted @ 2020-08-18 14:26  一波王炸  阅读(590)  评论(0)    收藏  举报