selenium单选框/复选框定位

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

posted @ 2019-02-24 18:26  Avicii_2018  阅读(1560)  评论(0编辑  收藏  举报