1. 程式人生 > >Selenium 定位一組元素

Selenium 定位一組元素

image end fin sel bubuko 文件 color lee edr

到目前為止,我們已經知道了怎麽去定位一個元素,有時候我們需要獲取頁面上的多個元素,該怎麽辦呢?難道還一個一個地去定位,那也太lower了吧。

webdriver提供了定位一組元素的方法,跟前面講的那八種定位方法一樣,只不過定位一個元素是單數:find_element,定位一組元素是復數:find_elements

我們以百度搜索結果頁面為例。

在百度搜索框輸入“selenium”,點擊“百度一下”按鈕,查看頁面元素

技術分享圖片

從搜索結果的頁面html代碼可以看到,每條搜索結果的父元素有多個class屬性(每個class屬性以間隔符,就是那個空格隔開),且都含有t屬性

分析完頁面元素後,我們就可以用CSS或xpath來定位當前頁面上所有的搜索結果了。

技術分享圖片

代碼:

# coding = utf-8
from time import sleep
from selenium import webdriver
# 驅動文件路徑
driverfile_path = rD:\coship\Test_Framework\drivers\chromedriver.exe
# 啟動瀏覽器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打開百度首頁
driver.get(rhttps://www.baidu.com/)
driver.find_element_by_css_selector(
"#kw").send_keys("selenium") driver.find_element_by_css_selector("#su").click() # 等待3秒,待全部加載完搜索結果 sleep(3) # 獲取搜索結果 results = driver.find_elements_by_css_selector("h3.t>a") # 搜索結果以列表形式返回 print("results",results) for r in results: print(r.text) # 退出 driver.quit()

Selenium 定位一組元素