文章目錄
- Python Selenium八大元素定位方法(新版BY方法)
- 前言
- 一、常用的八種定位方法(新舊對比)
- 二、查看網(wǎng)頁元素
- 三、八大元素定位示例
-
-
1、id定位
- 2、name定位
- 3、class定位
- 4、tag定位
- 5、link定位
- 6、partial_link定位
- 7、xpath定位
- 8、CSS定位
-
1、id定位
前言
在學(xué)習(xí)使用Selenium對網(wǎng)頁元素進行定位時,發(fā)現(xiàn)很多教程依然使用老版的元素定位方法,但是對于新版selenium來說,已經(jīng)棄用了之前的元素定位方法,所以在使用的時候會發(fā)現(xiàn)有報錯,會被一條橫線劃掉。所以今天來總結(jié)一下新版selenium對網(wǎng)頁元素進行定位的操作方法。
一、常用的八種定位方法(新舊對比)
先介紹一下selenium定位元素的一些常見方法
定位方法 | 新版 | 舊版 |
---|---|---|
by_id | find_element(By.ID,value=’’) | find_element_by_id() |
by_name | find_element(By.NAME,value=" ") | find_element_by_name() |
by_class_name | find_element(By.CLASS_NAME,value=" ") | find_element_by_class_name() |
by_tag_name | find_element(By.TAG_NAME,value=" ") | find_element_by_tag_name() |
by_link_text | find_element(By.LINK_TEXT,value=" ") | find_element_by_link_text() |
by_partial_link_text | find_element(By.PARTIAL_LINK_TEXT,value=" ") | find_element_by_partial_link_text() |
by_css_selector | find_element(By.CSS_SELECTOR,value=" ") | find_element_by_xpath() |
by_xpath | find_element(By.XPATH,value=" ") | find_element_by_xpath() |
Selenium八大元素定位方法的優(yōu)缺點對比如下:
● 1. ID定位
優(yōu)點:ID是唯一的,定位速度快。
缺點:有些元素沒有ID,不適用。
● 2. Name定位
優(yōu)點:Name屬性通常是唯一的,定位速度快。
缺點:有些元素沒有Name屬性,不適用。
● 3. Class Name定位
優(yōu)點:Class Name屬性通常是唯一的,定位速度快。
缺點:有些元素沒有Class Name屬性,不適用。
● 4. Tag Name定位
優(yōu)點:Tag Name屬性通常是唯一的,定位速度快。
缺點:有些元素沒有Tag Name屬性,不適用。
● 5. Link Text定位
優(yōu)點:Link Text屬性通常是唯一的,定位速度快。
缺點:只適用于鏈接。
● 6. Partial Link Text定位
優(yōu)點:Partial Link Text屬性通常是唯一的,定位速度快。
缺點:只適用于鏈接。
● 7. CSS Selector定位
優(yōu)點:CSS Selector可以通過多個屬性組合定位元素,定位靈活。
缺點:CSS Selector語法較為復(fù)雜,學(xué)習(xí)成本較高。
● 8. XPath定位
優(yōu)點:XPath可以通過多個屬性組合定位元素,定位靈活。
缺點:XPath語法較為復(fù)雜,定位速度較慢。
二、查看網(wǎng)頁元素
以谷歌瀏覽器打開百度為例,點擊右上角>更多工具>開發(fā)者工具,或者點擊鼠標右鍵選擇>檢查,就可以看到整個頁面的html代碼了。
??點擊框中左上角的箭頭圖標,移動鼠標到百度搜索框,就可以自動定位到百度搜索框的HTML代碼了,查看到搜索框的屬性,我們可以看到搜索框有id,name,class等屬性。
三、八大元素定位示例
代碼前置操作,導(dǎo)庫和包,創(chuàng)建瀏覽器對象并打開想要用Selenuim操作的網(wǎng)頁。
# 導(dǎo)入selenium庫
from selenium import webdriver
# 導(dǎo)入time庫
import time
# 導(dǎo)入By類,用于指定元素定位方式
from selenium.webdriver.common.by import By
# 創(chuàng)建Chrome瀏覽器對象
driver = webdriver.Chrome()
# 設(shè)置要訪問的網(wǎng)址
url = 'http:www.baidu.com'
# 打開網(wǎng)址
driver.get(url = url)
1、id定位
從上面定位到的搜索框?qū)傩灾?,有個id="kw"的屬性,我們可以通過這個id定位到這個搜索框。
代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-855317.html
driver.find_element(By.ID, 'kw').send_keys('Selenuim')
該行代碼實現(xiàn)在百度搜索框中輸入“Selenuim”。
2、name定位
從上面定位到的搜索框?qū)傩灾?,有個name="wd"的屬性,我們可以通過這個name定位到這個搜索框。
代碼:
driver.find_element(By.NAME,'wd').send_keys('selenium')
該行代碼實現(xiàn)name定位搜索框,并輸入selenium。
3、class定位
從上面定位到的搜索框?qū)傩灾校袀€class="s_ipt"的屬性,我們可以通過這個class定位到這個搜索框。文章來源:http://www.zghlxwxcb.cn/news/detail-855317.html
代碼:
driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('selenium')
**自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。**
**深知大多數(shù)Python工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!**
**因此收集整理了一份《2024年P(guān)ython開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負擔(dān)。**
**既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上前端開發(fā)知識點,真正體系化!**
**由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新**
**如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲取?。。。▊渥ython)**
mg_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上前端開發(fā)知識點,真正體系化!**
**由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新**
**如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。。▊渥ython)**
<img src="https://
到了這里,關(guān)于自學(xué)Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和優(yōu)缺點的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!