webdriver 可以很方便的使用 find_element 方法來定位某個特定的對象吱抚,
WebElement 接口同樣提供了定位一組元素的方法 find_elements
定義一組對象一般用于以下場景:
(1)批量操作對象按厘,比如將頁面上所有的checkbox都勾上
(2)先獲取一組對象顶岸,再在這組對象中過濾出需要具體定位的一些元素沪饺,比如定位出頁面上所有的checkbox,然后選擇最后一個协饲。
find_elements_by_tag_name一組對象
from selenium import webdriver
import os
driver=webdriver.Firefox()
file_path='file:///'+os.path.abspath('F:\Python\python 測試腳本\checkbox-0118\checkbox.html')
driver.get(file_path)
#選擇頁面上所有的tag name 為input元素
inputs=driver.find_elements_by_tag_name('input')
#然后從中過濾出type為checkbox元素镇草,單擊勾選
for input in inputs:
if input.get_attribute('type')=='checkbox':
input.click()
driver.quit()
import os
os.path.abspath() os 模塊為 python 語言標準庫中的 os 模塊包含普遍的操作系統(tǒng)功能孵构。主要用于操作本地目錄文件立莉。
path.abspath()方法用于獲取當前路徑下的文件绢彤。另外腳本中還使用到 for 循環(huán),對 inputs 獲取的一組元素 進行循環(huán)蜓耻,在 python 語言中循環(huán)變量(input)可以不用事先聲明直接使用茫舶。
find_elements_by_xx(‘xx’)
find_elements 用于獲取一組元素症昏。
下面通過 css 方式來勾選一組元素纳猪,打印當所勾選元素的個數并對最后一個勾選的元素取消勾選壁肋。
#
from selenium import webdriver
import os
driver=webdriver.Firefox()
file_path='file:///'+os.path.abspath('F:\Python\python 測試腳本\checkbox-0118\checkbox.html')
driver.get(file_path)
#選擇所有的type為checkbox的元素并單擊勾選
checkboxes=driver.find_elements_by_css_selector('input[type=checkbox]')
for checkbox in checkboxes:
checkbox.click()
#打印當前頁面上type為checkbox的個數
print(len(driver.find_elements_by_css_selector('input[type=checkbox]')))
#把壓面上最后1個checkbox的勾給去掉
driver.find_elements_by_css_selector('input[type=checkbox]').pop().click()
driver.quit()
len()
len 為 python 語言中的方法柿隙,用于返回一個對象的長度(或個數)枪蘑。
pop()
pop 也為 python 語言中提供的方法各拷,用于刪除指定們位置的元素杭棵,pop()為空默認選擇最一個元素粘驰。