Selenium 定位一組元素
阿新 • • 發佈:2018-05-28
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 = r‘D:\coship\Test_Framework\drivers\chromedriver.exe‘ # 啟動瀏覽器 driver = webdriver.Chrome(executable_path=driverfile_path) # 打開百度首頁 driver.get(r‘https://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 定位一組元素