1.单选框radio定位:
直接定位即可
driver.find_element_by_id("*****")
2.复选框checkbox定位:
直接定位即可
driver.find_element_by_id("*****")
3.复选框全部勾选定位:
(1)可以一个一个勾选定位
(2)可以定位一组元素
复选框的type=checkbox,这里可以用xpath语法:.//*[@type='checkbox']
drvier.find_elements_by_xpath(".//[@type='checkbox']")
find_elements是不能直接点击的,它是复数的,所以只能先获取到所有的checkbox对象,然后通过for循环去一个个点击操作
# 复选框单选
driver.find_element_by_id("c1").click()
# 复选框全选
checkboxs = driver.find_elements_by_xpath("//*[@type='checkbox']")
for i in checkboxs:
i.click()
#-*-coding:utf-8-*- from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www.kugou.com") driver.maximize_window() driver.find_element_by_tag_name("input").send_keys("成都") driver.find_element_by_class_name("searh_btn").click() time.sleep(3) elements = driver.find_elements_by_class_name("checkbox")#定位一组元素,得到一个列表 for m in elements: m.click() time.sleep(1) elements.pop(0).click()#勾选/取消勾选索引为0的元素,如果已被选中则该操作效果为取消勾选.勾选或者取消勾选之后,列表会重新排序,pop()的效果是移除,无论勾选还是取消勾选,elements列表中的一个元素被移除,列表长度发生变化. print(len(elements)) elements.pop(1).click()#勾选/取消勾选索引为0的元素,注意,elements列表收到上面pop(0)的影响,已经发生变化,列表更新后,此时为elemnents新列表中的索引为1的元素 print(len(elements)) elements.pop(2).click()#勾选/取消勾选索引为0的元素,列表重新排序,此时为新列表中的索引为2的元素 print(len(elements)) elements.pop().click()#勾选/取消勾选elements列表中最后一个元素,如果已被选中则该操作效果为取消选中 print(len(elements)) driver.quit()
4.判断是否选中:is_selected()
# 没点击操作前,判断选项框状态
s = driver.find_element_by_id("boy").is_selected()
print s
driver.find_element_by_id("boy").click()
# 点击后,判断元素是否为选中状态
r = driver.find_element_by_id("boy").is_selected()
print r