定位一组对象:
一、场景:
1. 批量勾选页面所有checkbox
2. 先获取一组对象,再从这组对象中过滤中符合条件的对象 ,例如勾选符合某个属性的checkbox,或者 选择最后一个
二、例子:
目标1:选中checkbox【公司整改通知单】
#选择页面上所有的tab name为input且type为checkbox的元素
checkboxes = driver.find_elements_by_css_selector("input[type='checkbox']") # css定位
#checkboxes = driver.find_elements_by_xpath("//input[@type='checkbox']") #xpath定位
#使用tabname,checkboxes = driver.find_elements_by_tab_name('input'),此方法也可以,但此方法是定位所有input
for checkbox in checkboxes:
if checkbox.get_attribute("data-id") == "30001": # 如果 checkbox的data-id属性为30001,则选 中;不加条件则将所有chekcbox选中
checkbox.click()
目标2: 打印当前页面上type为checkbox的个数
counts = len(checkboxes)
目标3:把页面上最后一个checkbox选中
driver.find_elements_by_css_selector("input[type='checkbox]").pop().click()
目标4:用 pop()勾选某个选项
pop(0)默认获取一组元素中的第一个
pop(1)默认获取一组元素中的第二个
pop()函数用于获取列表中的一个元素(默认为最后一个元素),并返回该元素的值。
ps参考::部分内容来源于虫师的selenium2 python自动化测试实战书籍