Selenium元素定位

Selenium提供8種元素定位的方法

id,name,class name,link text,xpath,css selector,tag name ,partial link text

這八種用python語言表示為

find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
這是百度首頁的輸入框的屬性

1、通過class、id、name定位元素

from selenium import webdriver  
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
# 通過class定位搜索框
a  = browser.find_element_by_class_name("s_ipt")
# 通過id定位搜索框
b  = browser.find_element_by_id("kw")
# 通過name定位搜索框
c  = browser.find_element_by_name("wd")
print(a)
print(b)
print(c)
browser.close()
>>>
<selenium.webdriver.remote.webelement.WebElement (session="1720d5370aeb03aca930539033559b4c", element="0.4967300544744968-1")>
<selenium.webdriver.remote.webelement.WebElement (session="1720d5370aeb03aca930539033559b4c", element="0.4967300544744968-1")>
<selenium.webdriver.remote.webelement.WebElement (session="1720d5370aeb03aca930539033559b4c", element="0.4967300544744968-1")>

2、通過tag定位元素

HTML是通過 tag 來定位元素的功能的,比如 table是表格,a是超鏈接 等等,但是一個網(wǎng)頁中會有許多 tag,所以一般來說不會通過 tag 來定位元素

3、通過 link text、partial link text定位元素


通過腳本定位到 新聞 這個超鏈接,并點擊

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
link = browser.find_element_by_link_text("新聞").click()

如果鏈接的字符串太長的話,全部輸入影響代碼美觀也容易出錯,這時就可以采用 partial link text,模糊匹配、截取字符串的一部分定位到元素 就可以了

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
link = browser.find_element_by_partial_link_text("聞").click()

4、通過 Xpath 定位元素

XPath定位元素的方法有很多中,這里介紹一種最簡單粗暴的:
那就是利用瀏覽器調(diào)試功能,定位到元素所在的那一行右鍵-->Copy-->Copy XPath


當然這也是一個辦法,但是最好還是自己了解到到底應該怎么用Xpath定位到元素

4、通過 CSS selector 定位元素

與Xpath比較

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 1.Selenium元素定位 1.1自動化測試基礎 1.1.1分層的自動化測試 傳統(tǒng)的自動化測試更關注產(chǎn)品UI層的...
    聞香師叔閱讀 725評論 0 3
  • 定位方式: id name class name tag name link text 元素文本...
    honestpan閱讀 362評論 0 1
  • By支持的定位器元素包括: CLASS_NAME = 'class name' CSS_SELECTOR = 'c...
    夏了夏夏夏天閱讀 1,814評論 0 1
  • 1、感恩今天又是喜悅美好高能量的一天,感恩天使寶寶對我的陪伴和守護,親愛的天使寶寶我愛你,感恩真我?guī)Ыo我的一切,感...
    韻婧閱讀 312評論 0 1
  • 三個人一聲不吭地玩著手機,突然第四個人出現(xiàn)了。 那個人來來回回,一會兒大笑一會兒嘀咕。大家都變得很高興。 熱情的力...
    開朗的邊緣閱讀 128評論 0 0