- id定位
- name定位
- class_name 定位
- tag_name定位
- link_text定位
- partail_link_text定位
- xpath定位
- css定位
1 ID定位
-
通過元素的ID屬性值來進(jìn)行元素定位 追驴,在html標(biāo)準(zhǔn)規(guī)范中 ID值是唯一的
說明: 元素要有ID屬性
定位方法: find_element_by_id(id) # id參數(shù)表示的是id的屬性值
driver = webdriver.chrome()
driver.find_element_by_id("password").sendkeys("123456")
2 name定位
-
通過元素的name屬性值為進(jìn)行元素定位 name屬性值 在HTML頁面中髓帽,是可以重復(fù)的。
說明:元素要有name屬性
定位方法: find_element_by_name(name) # name 參數(shù)表示的是name的屬性值
3 class_name定位
-
通過元素的class屬性值進(jìn)行元素定位 class屬性值是可重復(fù)的
說明:元素必須要有class屬性
定位方法: find_element_by_class_name(class_name) class_name參數(shù)表示的是class的其中一個屬性值
4 tag_name定位
-
通過元素的標(biāo)簽名稱進(jìn)行定位, 在同一個html頁面當(dāng)中,相同標(biāo)簽元素會有很多捂贿。
這種定位元素的方式不建議大家在工作當(dāng)中使用。
-
定位方法: find_element_by_tag_name(tag_name) # tag_name表示的是元素的標(biāo)簽名稱。
如果有重復(fù)的元素衫哥,定位到的元素默認(rèn)都是第一個元素
driver.find_element_by_tag_name('input').send_keys('admin')
5 link_text定位
- 通過超鏈接的全部文本信息進(jìn)行元素定位 ,主要用來定位a標(biāo)簽
- 定位方法: find_element_by_link_text(link_text)
link_text參數(shù)代表的是a標(biāo)簽的全部。
driver.find_element_by_link_text('訪問 新浪 網(wǎng)站').click()
6 partial_link_text定位
- 通過超鏈接的局部文本信息進(jìn)行元素定位襟锐,主要用來定位a標(biāo)簽
- 定位方法:find_element_by_partial_link_text(partial_link_text)
partial_link_text表示的是a標(biāo)簽的局部文本內(nèi)容
# 通過partial_link_text定位到新浪網(wǎng)站并點擊
driver.find_element_by_partial_link_text("訪問 新浪 網(wǎng)站").click()
7 定位一組元素
-
定位一組元素的方法:
find_elements_by_id(id)
find_elements_by_tag_name(tag_name)
定位一組元素返回的值是一個列表
可以通過下標(biāo)來使用列表中的元素
下標(biāo)是從0開始撤逢。
# 導(dǎo)入selenium
import time
from selenium import webdriver
# 實例化瀏覽器驅(qū)動對象(創(chuàng)建瀏覽器驅(qū)動對象)
driver = webdriver.Chrome() # 創(chuàng)建的是谷歌瀏覽器驅(qū)動對象 chrome后面有括號,而且第一個字母要大寫
# driver = webdriver.Firefox() # 創(chuàng)建火狐瀏覽器驅(qū)動對象
# 打開百度網(wǎng)站
driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E6%B3%A8%E5%86%8CA.html")
# 使用tag_name定位密碼輸入框(第二個input標(biāo)簽)粮坞,并輸入:123456
elements = driver.find_elements_by_tag_name("input")
elements[2].send_keys("123456")
# 等待3s(代表業(yè)務(wù)操作)
time.sleep(3) # 通過快捷導(dǎo)包的方式導(dǎo)入time模塊蚊荣, 光標(biāo)要在time后面再按alt+enter
# 退出瀏覽器驅(qū)動(釋放系統(tǒng)資源)
driver.quit()