Python+webdriver單選框/復選框定位


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM