<python08>WebElement定位一組對象

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 語言標(biāo)準(zhǔn)庫中的 os 模塊包含普遍的操作系統(tǒng)功能。主要用于操作本地目錄文件。
path.abspath()方法用于獲取當(dāng)前路徑下的文件。另外腳本中還使用到 for 循環(huán),對 inputs 獲取的一組元素 進(jìn)行循環(huán),在 python 語言中循環(huán)變量(input)可以不用事先聲明直接使用。
find_elements_by_xx(‘xx’)
find_elements 用于獲取一組元素。

下面通過 css 方式來勾選一組元素,打印當(dāng)所勾選元素的個數(shù)并對最后一個勾選的元素取消勾選。

#
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()
#打印當(dāng)前頁面上type為checkbox的個數(shù)
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 語言中的方法,用于返回一個對象的長度(或個數(shù))。
pop()
pop 也為 python 語言中提供的方法,用于刪除指定們位置的元素,pop()為空默認(rèn)選擇最一個元素。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容