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
