这篇文章说单选按钮(radio button)和复选框(checkbox)的操作。单选按钮只能选择一个,比如性别,性取向,年龄段之类的。当然,你要是非说你有多重性取向为啥不让我多选那我也没办法,要么报bug要么忍。一般来说单选按钮用一个圈圈表示:
复选框则相反,可以允许你进行多项选择,用一个框框表示:
单选按钮和复选框的html源代码和之前讲的文本框(textbox)和按钮(button)也很像,其实说白了这四者其实就是类型(type)不一样,所以显示的效果大相径庭:
把这四个捆一起记得熟熟的。单选按钮常用的操作有:
1. 是否显示;
2. 是否启用;
3. 选择;
4. 查看是否被选。
演示一下,新建一个叫SeleniumRadioCheck的java项目 -> 包com.test -> Test.java,添加selenium jar包,把driver声明配置好,把示例网页webelements.html网页全屏打开,然后定位单选按钮:
前两个不说了,还是isDisplayed()和isEnabled()。比如我们要查看女生那个按钮是不是存在而且启用状态,代码就这么写:
打印出来会是两个true。当然,这个单选按钮确实在当前页面显示,而且也确实没被禁,所以打印结果没毛病。但和之前讲的一样,这两个方法都基于按钮确实存在这个大前提下,否则就该抛异常了。
第三个操作是选择,用的方法还是click()。这个click()用得很广,对于按钮链接来说就是“点击”,对于单选按钮复选框就是“选择”。不过也好理解,你选择的过程也是靠点击完成的。我们继续写代码,完成对女生按钮的选择:
第四个操作是查看是否被选,用到的方法是isSelected()。比如例子中女生按钮被选择了,返回true,没被选择则返回false,也很好理解:
如果现在我又选了男生按钮,那女生按钮必然处于未选状态,这是单选按钮的特性。选了男生之后女生就该返回false了:
这就是单选按钮的四种常用操作。
复选框也有这四种操作,除此之外还有一种:去掉选择。复选框和单选按钮不一样的地方除了可以同时选择多项外,也可以在选定的项目上再点一下去掉选择。比如对于webelements.html上的复选框,我们可以先同时选上“微信”“微博”“人人”,“其它”:
这时调用一次click()方法,也就是再点一下复选框,就可以去掉选择。比如我们想去掉“微博”“人人”选项。我让程序中间等了个5秒,为了让大家看到全选中时的效果:
这些就是单选按钮和复选框的操作,源代码是SeleniumRadioBtn和SeleniumCheckBox这两个项目。