HTML的checkbox多选框---按条件选择


如图,当一个页面上有多个checkbox,有时候需要根据条件来选择我们需要的checkbox。

上面假设我们需要挑选出符合条件的公司名称,我们先获得所有的公司名,get webelements 获取元素列表,get text获取文本,用一个for循环遍历可获得所有的公司名。

然后和我们的条件(这个条件就是读取.txt中的数据,这个读取的数据我们用列表来保存)比较,如果符合要求,去勾选checkbox;所有我们还要去把所有的checkbox的定位元素拿到,但是,我们知道的,在robotframework中使用两个for循环嵌套是比较不好弄得,不如selenium中可以直接使用python语言就可以搞定。这里我们找到了一个关键字:list should not contain value,列表中不应该包含值,就是查看列表中是否和数值匹配,再用一个关键字,run keyword and return status来返回执行语句的状态,True or False.

这样子,循环遍历公司名字,符合条件的就勾选,不符合就不勾选,直到遍历完页面所有的公司名,为了保证页面的元素可见性,在for循环中判断一次就就滚动下屏幕。

我们设置两个初始变量:${count},${页面滚动值},${count}没遍历一次就加1,这个${count}传给定位的checkbox作为元素列表索引取值。

大概思路就是这样子,放个我做的案列:

 @{webelements}    get webelements    jquery=ul.results_list_box>li>a
    ${黑名单公司}    返回读取的列表内容
    ${滑动页面数值}    set variable    ${0}    #设置页面滚动值
    ${count}    set variable    ${0}    #设置计数(作为checkbo元素列表的取值索引)
    sleep    2
    : FOR    ${ele}    IN    @{webelements}    #遍历元素
    \    ${页面的公司名称}    get text    ${ele}    #获取公司名
    \    sleep    0.5    \    #该处需要加点延时,不然易返回none
    \    ${status}    run keyword and return status    list should not contain value    ${黑名单公司}    ${页面的公司名称}
    \    run keyword if    '${status}'=='True'    点击元素    jquery=div#searchlist>ul>li>input:eq(${count})
    \    上下滚动    ${滑动页面数值}
    \    ${count}    evaluate    ${count}+1
    \    ${滑动页面数值}    evaluate    ${滑动页面数值}+40





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值