Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
Python selenium元素的定位
發(fā)布于:2023-10-29 21:02:29

2024 一天掌握python爬蟲【基礎(chǔ)篇】 涵蓋 requests、beautifulsoup、selenium

https://www.bilibili.com/video/BV1Ju4y1Y7k6/

 

對象的定位應(yīng)該是自動化測試的核心,要想操作一個對象,首先應(yīng)該識別這個對象。一個對象就是一個人一樣,他 會有各種的特征(屬性),如比我們可以通過一個人的身份證號,姓名,或者他住在哪個街道、樓層、門牌找到這 個人。

那么一個對象也有類似的屬性,我們可以通過這個屬性找到這對象。

注意:不管用那種方式,必須保證頁面上該屬性的唯一性

webdriver 提供了一系列的對象定位方法,常用的有以下幾種

id 通過標(biāo)簽id定位

name 通過標(biāo)簽name定位

class name 通過標(biāo)簽class定位

link text 通過超鏈接文本定位

partial link text 通過超鏈接文本(模糊匹配)定位

tag name 通過標(biāo)簽名定位

xpath 通過xpath方式定位

css selector 通過css選擇器方式定位

 

webdriver提供了兩個方法查詢元素

find_element (查詢第一個匹配元素) 和find_elements(查詢所有匹配元素)

參考代碼:

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 創(chuàng)建瀏覽器操作對象
browser = webdriver.Chrome()
url = "https://www.baidu.com/"

browser.get(url)

# 元素定位

# 根據(jù)id查找對象
button = browser.find_element(By.ID, 'su')

print(button)

# 根據(jù)標(biāo)簽名查找
e1 = browser.find_element(By.TAG_NAME, 'input')
print("e1", e1)

# 根據(jù)標(biāo)簽的name屬性值查找
e2 = browser.find_elements(By.NAME, "wd")
print("e2", e2)

# 根據(jù)xpath查找
e3 = browser.find_elements(By.XPATH, '//input[@id="su"]')
print("e3", e3)

# 使用css選擇器方式查找
e4 = browser.find_element(By.CSS_SELECTOR, ".s_ipt")
e5 = browser.find_element(By.CSS_SELECTOR, "#su")
print("e4", e4)
print("e5", e5)

# 使用鏈接文本查找
e6 = browser.find_element(By.LINK_TEXT, "新聞")
e7 = browser.find_elements(By.PARTIAL_LINK_TEXT, "新")
print("e6", e6)
print("e7", e7)

# 使用樣式名稱查找
e8 = browser.find_element(By.CLASS_NAME, "s_ipt")
print("e8", e8)

 

轉(zhuǎn)載自: