Python?selenium?八種定位元素的方式
前言
八種定位方式:
id,name,class name,tag name,link text,partial link text,xpath,css selector。其中id,name,class name,tag name是根據(jù)元素的標(biāo)簽或元素的屬性來進(jìn)行定位;link text,partial link text是根據(jù)超鏈接的文本來進(jìn)行定位;xpath為元素路徑定位;css為選擇器定位(樣式定位)。
1:id定位
說明:id定位就是通過元素的id屬性來定位元素;
前提:元素有id屬性
id定位方法:find_element_by_id()
示例:打開百度搜索頁面,通過id定位,輸入搜索關(guān)鍵字
from selenium import webdriver
import time
# 打開chrome瀏覽器
driver = webdriver.Chrome()
# 打開百度搜索頁面
driver.get('https://www.baidu.com')
# 通過id定位
driver.find_element_by_id('kw').send_keys('python')
# 強(qiáng)制等待2秒查看效果
time.sleep(2)
# 關(guān)閉瀏覽器
driver.quit()2:name定位
說明:HTML規(guī)定name屬性來指定元素名稱,name的屬性值在當(dāng)前文檔中可以不是唯一的,name定位就是根據(jù)name屬性來定位。
前提:元素有name屬性
name定位方法:find_element_by_name()
示例:打開百度搜索頁面,通過name定位,輸入搜索關(guān)鍵字
from selenium import webdriver
import time
# 打開chrome瀏覽器
driver = webdriver.Chrome()
# 打開百度搜索頁面
driver.get('https://www.baidu.com')
# 通過name定位
driver.find_element_by_name('wd').send_keys('python')
# 強(qiáng)制等待2秒查看效果
time.sleep(2)
# 關(guān)閉瀏覽器
driver.quit()3:class_name定位
說明:HTML規(guī)定class來指定元素的類名,class定位就是根據(jù)class屬性來定位。
前提:元素有class屬性
class_name定位方法:find_element_by_class_name()
示例:打開百度搜索頁面,通過class_name定位,輸入搜索關(guān)鍵字
from selenium import webdriver
import time
# 打開chrome瀏覽器
driver = webdriver.Chrome()
# 打開百度搜索頁面
driver.get('https://www.baidu.com')
# 通過class_name定位
driver.find_element_by_class_name('s_ipt').send_keys('python')
# 強(qiáng)制等待2秒查看效果
time.sleep(2)
# 關(guān)閉瀏覽器
driver.quit()4:tag_name定位
說明:HTML本質(zhì)就是由不同的tag(標(biāo)簽)組成,而每個tag都是指同一類,所以tag定位效率低,一般不建議使用;tag_name定位就是通過標(biāo)簽名來定位。
tag_name定位方法:find_element_by_tag_name()
5:link_text定位
說明:link_text定位與前面4個定位有所不同,它專門用來定位超鏈接文本(文本值)
前提:定位的元素是鏈接標(biāo)簽(a標(biāo)簽)
link_text定位方法:find_element_by_link_text()
示例:打開百度首頁,通過link_text定位到hao123按鈕,并進(jìn)行點(diǎn)擊操作
from selenium import webdriver
import time
# 打開chrome瀏覽器
driver = webdriver.Chrome()
# 打開百度搜索頁面
driver.get('https://www.baidu.com')
# 通過link_text定位
driver.find_element_by_link_text('hao123').click()
# 強(qiáng)制等待2秒查看效果
time.sleep(2)
# 關(guān)閉瀏覽器
driver.quit()6:partial_link_text定位
說明:partial_link_text定位是對link_text定位的補(bǔ)充,partial_link_text為模糊匹配;link_text為精確匹配。
前提:定位的元素是鏈接標(biāo)簽(a標(biāo)簽)
partial_link_text定位方法:find_element_by_partial_link_text()
通過傳入a標(biāo)簽局部文本或全部文本來定位元素,要求輸入的文本能夠唯一找到這個元素
示例:打開百度首頁,通過partial_link_text定位到新聞,并進(jìn)行點(diǎn)擊操作
from selenium import webdriver
import time
# 打開chrome瀏覽器
driver = webdriver.Chrome()
# 打開百度搜索頁面
driver.get('https://www.baidu.com')
# 通過partial_link_text定位
driver.find_element_by_partial_link_text('新').click()
# 強(qiáng)制等待2秒查看效果
time.sleep(2)
# 關(guān)閉瀏覽器
driver.quit()7:xpath定位
xpath概述:
- 1、xpath即為xml path的簡稱,它是一種用來確定XML文檔中某部分位置的語言。
- 2、HTML可以看做是XML的一種實(shí)現(xiàn),所以selenium用戶可以使用這種強(qiáng)大的語言在web應(yīng)用中來定位元素。
- 3、xpath為強(qiáng)大的語言,是因?yàn)樗蟹浅l`活的定位策略。
xpath定位策略(方式):
- 1、路徑定位–絕對路徑、相對路徑;
- 2、利用元素屬性定位;
- 3、層級與屬性結(jié)合定位;
- 4、屬性與邏輯定位結(jié)合。
xpath定位方法:find_element_by_xpath()
8:css定位
css概述:
- 1、css(Cascading Style Sheets)是一種語言,它用來描述HTML和XML的元素顯示樣式。
- 2、css語言中有css選擇器,在selenium中也可以使用這種選擇器來進(jìn)行元素定位。
- 3、css定位方式比xpath快,而且css的語法也非常強(qiáng)大,所以非常推薦這種方式定位。
css定位策略(方式):
- 1、id選擇器
- 2、class選擇器
- 3、元素選擇器
- 4、屬性選擇器
- 5、層級選擇器
css定位方法:find_element_by_css_selector()
到此這篇關(guān)于Python selenium 八種定位元素的方式的文章就介紹到這了,更多相關(guān)Python selenium 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 中的判斷語句,循環(huán)語句,函數(shù)
這篇文章主要介紹了Python 中的判斷語句,循環(huán)語句,函數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
Python跨文件調(diào)用函數(shù)以及在一個文件中執(zhí)行另一個文件
這篇文章主要給大家介紹了關(guān)于Python跨文件調(diào)用函數(shù)以及在一個文件中執(zhí)行另一個文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-12-12
python3.6使用tkinter實(shí)現(xiàn)彈跳小球游戲
這篇文章主要為大家詳細(xì)介紹了python3.6使用tkinter實(shí)現(xiàn)彈跳小球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
python使用pil庫實(shí)現(xiàn)圖片合成實(shí)例代碼
這篇文章主要介紹了python PIL實(shí)現(xiàn)圖片合成實(shí)例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01

