第十四节:单选框(radio)和复选框(checkbox)

来源:互联网 发布:java电脑版安装包多大 编辑:程序博客网 时间:2024/06/11 08:21

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

实验网页代码:

<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 webdriverfrom selenium.webdriver.common.keys import Keysfrom time import sleepdriver = webdriver.Firefox()driver.maximize_window()driver.get('file:///D:/checkboxandradio.html')# checkboxdriver.find_element_by_xpath('//input[@value="cv1"]').click()  # clickdriver.find_element_by_xpath('//input[@value="cv2"]').send_keys(Keys.SPACE)  # send space# radiodriver.find_element_by_xpath('//input[@value="rv1"]').send_keys(Keys.SPACE)  # send spacesleep(1)driver.find_element_by_xpath('//input[@value="rv2"]').click()  # clicksleep(1)driver.quit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

检查某个框是否被选中

element.is_selected()

示例代码如下:

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom time import sleepdriver = webdriver.Firefox()driver.maximize_window()driver.get('file:///D:/checkboxandradio.html')# checkboxdriver.find_element_by_xpath('//input[@value="cv1"]').click()  # clickdriver.find_element_by_xpath('//input[@value="cv2"]').send_keys(Keys.SPACE)  # send spaceif driver.find_element_by_xpath('//input[@value="cv2"]').is_selected():    print 'selected!'else:    print 'not yet!'# radiodriver.find_element_by_xpath('//input[@value="rv1"]').send_keys(Keys.SPACE)  # send spacesleep(1)driver.find_element_by_xpath('//input[@value="rv2"]').click()  # clickif driver.find_element_by_xpath('//input[@value="rv1"]').is_selected():    print 'selected!'else:    print 'not yet!'sleep(1)driver.quit()

结果:

selected!not yet!
  • 1
  • 2

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



阅读全文
0 0