web 8種元素定位

2022-06-08 12:51:07 字數 2468 閱讀 5976

8種 定位方式

6種 通過乙個屬性來定位的

2種 組合各種屬性來定位 + 結合各種關係來定位

#

開啟跟google的乙個會話

driver =webdriver.chrome()

#訪問乙個**

driver.get("

")

前六種唯一屬性訪問

#

1、通過元素的id屬性找元素 # kw1234567

ele = driver.find_element_by_id("

kw") #

返回的webelement物件 封裝了元素的屬性和操作

#print(ele.tag_name)

#print(ele.get_attribute("class"))

#

2、name屬性

driver.find_element_by_name("

wd") #

找乙個單一的元素。從上往下,符合條件的第乙個

ele_list = driver.find_elements_by_name("

wd") #

找到所有匹配的元素。#返回的是列表,每乙個都是webelement

print(ele_list[0].tag_name)

#

3、class屬性 -- 只能選擇乙個class值

find_elements_by_class_name()返回list
#

driver.find_element_by_class_name()

#driver.find_elements_by_class_name()

#

4、標籤名 tag_name

#driver.find_element_by_tag_name()

#driver.find_elements_by_tag_name()

#

5,6 鏈結元素 link text #完全匹配 # 模糊匹配

#driver.find_element_by_link_text("更多產品") # 完全匹配

#driver.find_element_by_partial_link_text("更多") # 模糊匹配

主要的還是xpath定位:

#

絕對定位 嚴格按照路徑和位置來定位元素 以/開頭 父/子關係

#相對定位 參照物:整個html 只要能夠在這個頁面當中,找到符合屬性的元素。

#以//開頭

#//*[@id="kw"]

#/html/body/div[2]/div/form/div[1]/input

#//input[@name="phone"]

#1、//標籤名[@屬性名稱=屬性值] * 匹配所有

#2、邏輯運算 and or //標籤名[@屬性名稱=屬性值 and @屬性名稱=屬性值]

driver.find_element_by_xpath(

'//input[@name="phone"]

') #

#driver.find_elements_by_xpath()

#3、元素的文字內容 //標籤名[text()="元素的文字內容"] # 文字內容完全匹配

#4、部分匹配:文字內容/屬性值 contains(text()/@屬性,部分值)

#//標籤名[contains(text(),"部分文字內容")] # 太長了

#//標籤名[contains(@屬性,"部分屬性值")] # id(不變動+變動) # class有多個。

#5、當你不能通過自己的屬性唯一找到的時候,就要利用層級關係 。

#5.1、層級定位 第一種方式

#後一條件,是在前乙個得到的結果之內去搜尋。//條件1//條件2.....

#//div[@id="u1"]//a[@name="tj_login"]

#5.2 層級定位 - 軸定位 # 表示式 /軸定位名稱::標籤名[屬性表達]

#兄弟姐妹 - 直系的 有比你大的,有比你小的。

#preceding-sibling: 哥哥姐姐

#following-sibling:弟弟妹妹

#//a[@name="tj_trvideo"]/following-sibling::a[@name="tj_login"]

#//a[@name="tj_settingicon"]/preceding-sibling::a[@name="tj_login"]

#爸爸:parent 祖先:ancestor

#//a[@name="tj_trtieba"]/parent::div/a[@name="tj_login"]

#

8種元素定位方式

8種元素定位方式 xpath和css selector比較 css selector執行效率比id還快,因為 原始碼中by id 方法會被自動轉成css 方法處理 css selector的使用 1 通過css selector的方式,可以採用任意的屬性來定位元素,只需要在屬性的兩邊加一對中括號即可...

元素定位8種方法

doctype html html lang en head meta charset utf 8 title title title head body p id abc 海客談瀛洲,煙濤微茫信難求 p a name abd 天南地北雙飛客,老翅兒幾回寒暑 a br a href a br spa...

selenium8種元素定位方式

selenium id定位 1.find element by id name定位 2.find element by name classname定位 3.find element by class name 鏈結全部定位 4.find element by link text 鏈結部分位置定位 ...