更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解


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

试验网页代码checkandradio.html:

<html>
<body>
Checkbox:
<input type="checkbox" value="cv1" name="c1">
<input type="checkbox" value="cv2">
<input type="checkbox" value="cv3" name="c1">
<input type="checkbox" value="cv4">
<p>
Radio:
<input type="radio" value="rv1" name="r1">
<input type="radio" value="rv2" name="r1">
</body>
</html>

定位:就是普通的input标签,按照正常的定位方式定位就可以,不再赘述。

下面我们用selenium选中其中的checkbox(1、2)和radio1->radio2,上代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

driver = webdriver.Firefox()
driver.maximize_window()
driver.get('file:///D:/checkboxandradio.html')

# checkbox
driver.find_element_by_xpath('//input[@value="cv1"]').click()  # click
driver.find_element_by_xpath('//input[@value="cv2"]').send_keys(Keys.SPACE)  # send space

# radio
driver.find_element_by_xpath('//input[@value="rv1"]').send_keys(Keys.SPACE)  # send space
sleep(1)
driver.find_element_by_xpath('//input[@value="rv2"]').click()  # click

sleep(1)
driver.quit()

从上例可以看出我们对这种checkbox和radio,可以通过直接点击或者发送空格的方式达到选中或者反选的目的。

检查某个框是否被选中

element.is_selected()

示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

driver = webdriver.Firefox()
driver.maximize_window()
driver.get('file:///D:/checkboxandradio.html')

# checkbox
driver.find_element_by_xpath('//input[@value="cv1"]').click()  # click
driver.find_element_by_xpath('//input[@value="cv2"]').send_keys(Keys.SPACE)  # send space
if driver.find_element_by_xpath('//input[@value="cv2"]').is_selected():
    print 'selected!'
else:
    print 'not yet!'

# radio
driver.find_element_by_xpath('//input[@value="rv1"]').send_keys(Keys.SPACE)  # send space
sleep(1)
driver.find_element_by_xpath('//input[@value="rv2"]').click()  # click
if driver.find_element_by_xpath('//input[@value="rv1"]').is_selected():
    print 'selected!'
else:
    print 'not yet!'

sleep(1)
driver.quit()

结果:

selected!
not yet!

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

更多相关文章

  1. Python------类的结构细分,异常处理,方法,属性
  2. Python3基础教程-廖雪峰[带标签完整版]
  3. Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法
  4. 分析标签集的最佳方法是什么?
  5. AttributeError:'Flask'对象没有属性'login_manager' - Login_Ma
  6. python - pandas或者sklearn中如何将字符形式的标签数字化
  7. 关于Python的属性、参数、方法的解释、区别
  8. python函数的属性
  9. python过滤html文档中的Tag标签

随机推荐

  1. Android中字体颜色大全-146种(完整版)
  2. android按键模拟测试
  3. android 里面的测量单位
  4. android四种不同的事件实现
  5. 如何隐藏Activity的界面,让其在后台运行
  6. Activity finish后出现闪烁的解决办法
  7. Android Wifi Hotspot Manager Class
  8. android res目录资源文件适配
  9. Android录制视频,可限制时长,限大小
  10. Android HOME键屏蔽