本篇文章整理了元素定位的基礎知識——單個元素定位方式。
一、單個元素定位方式簡介
1. find_element_by_id
通過元素的id屬性進行定位。以百度首頁為例,首先進入https://www.baidu.com,按F12進入開發人員頁面,然后單擊調試窗口的左上角的選擇圖標,然后選中百度搜索框,即可看到調試窗口對應所選元素的代碼突出顯示,如下圖,可以看到百度搜索框的id為kw。
2. find_element_by_name
通過元素的name屬性進行定位。如上圖,百度搜索框的name為wd。
3. find_element_by_class_name
通過元素的class屬性進行定位。如圖1所示,百度搜索框的class_name為s_ipt。
4. find_element_by_link_text
通過超鏈接的文本內容進行定位。
5. find_element_by_partial_link_text
同4,不過該方法是通過模糊方式進行定位的,即通過超鏈接的部分文本內容進行定位。
6. find_element_by_xpath
通過元素的xpath路徑表達式進行定位。如下圖,選中突出顯示的代碼右鍵選擇copy,選擇復制元素的xpath,百度搜索框對應的xpath為//*[@id="kw"]。
7. find_element_by_css_selector
通過css選擇器對元素進行定位。如上圖,復制元素的selector,百度搜索框的css_selector為#kw。
8. find_element_by_tag_name
通過元素的標簽名進行定位。因為同一個頁面中具有相同標簽名的元素較多,所以不常用。
二、實例

1 # coding=utf-8 2 3 import time 4 5 from selenium import webdriver 6 7 # 單個元素的多種定位方式 8 9 # 創建driver實例 10 driver = webdriver.Chrome() 11 # 打開百度首頁 12 driver.get('https://www.baidu.com/') 13 # 1.通過id屬性進行定位 14 # driver.find_element_by_id('kw').send_keys('id') 15 # 2.通過name屬性進行定位 16 # driver.find_element_by_name('wd').send_keys('name') 17 # 3.通過class屬性進行定位 18 # driver.find_element_by_class_name('s_ipt').send_keys('class_name') 19 # 4.通過link_text進行定位 20 # driver.find_element_by_link_text('新聞').click() 21 # 5.通過部分超鏈接文本內容進行定位 22 # driver.find_element_by_partial_link_text('聞').click() 23 # 6.通過xpath進行定位 24 # driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath') 25 # 7.通過css選擇器進行定位 26 driver.find_element_by_css_selector('#kw').send_keys('css_selector') 27 # 定位'百度一下'按鈕並點擊 28 driver.find_element_by_id('su').click() 29 # 等待5s 30 time.sleep(5) 31 # 退出驅動程序並關閉瀏覽器 32 driver.quit()