淺談Selenium+Webdriver 常用的元素定位方式
假設(shè)頁(yè)面源代碼如下:
<input type="text"name="wd" id="kw1" class="input_wd" maxlength="100"style="width:474px;"autocomplete="off">
通過(guò)id定位元素:find_element_by_id(“id_vaule”):
browser=webdriver.Firefox()
browser.find_element_by_id("kw1")
通過(guò)name定位元素:find_element_by_name(“name_vaule”)
browser.find_element_by_name("wd")
通過(guò)tag_name定位元素:find_element_by_tag_name(“tag_name_vaule”)
browser.find_element_by_tag_name("input")#tag_name指標(biāo)簽名稱
通過(guò)class_name定位元素:find_element_by_class_name(“class_name”)
browser.find_element_by_class_name("input_wd")
通過(guò)css定位元素:find_element_by_css_selector();用css定位是比較靈活的
browser.find_element_by_css_selector("input[id=\"kw1\"]")
browser.find_element_by_css_selector("input.input_wd)
browser.find_element_by_css_selector("#kw1)
通過(guò)xpath定位元素:find_element_by_xpath(“xpath”)
XPath(XML Path Language)是一種在XML文檔中定位元素的語(yǔ)言,由于HTML文檔本身就是一個(gè)標(biāo)準(zhǔn)的XML頁(yè)面,所以我們可以使用XPath的語(yǔ)法來(lái)定位頁(yè)面元素。
假設(shè)頁(yè)面源代碼如下:
注:元素的xpath絕對(duì)路徑可通過(guò)firebug直接查詢,絕對(duì)路徑以單/開頭,從文檔的根節(jié)點(diǎn)開始解析(如:/html/body/table/tbody/tr[2]/td[2]/div/div[1]/div/div[2]/div[4]/div[3]/div[1]/a[1]),相對(duì)路徑則以//開頭,從文檔的任意節(jié)點(diǎn)開始解析。

相對(duì)路徑的引用寫法:
| 表達(dá)式 | 描述 |
|---|---|
| //input | 選取所有input元素 |
| //form[1]/input | 選取第一個(gè)form元素內(nèi)的所有直接子input元素 |
| //form[1]//input | 選取第一個(gè)form元素內(nèi)的所有子input元素,不論嵌套了多少層 |
| //form[1]/input[last()] | 選取第一個(gè)form元素內(nèi)的所有直接子input元素中的最后一個(gè) |
| //form[@id='loginForm'] | 選取id屬性值為loginForm的form元素 |
| //input[@name='continue'][@type='button'] | 選取name屬性值為continue且type屬性值為button的input元素 |
| //form[@id^='loginForm']/input[4] | 選取id以loginForm開頭的form元素下第4個(gè)input元素 |
| browser.find_element_by_xpath(“//td[contains(text(),'下單編號(hào)')]”) | 選取text文本為下單編號(hào)的td |
通過(guò)link定位:find_element_by_link_text(“text_vaule”)或者find_element_by_partial_link_text()
適用于頁(yè)面中出現(xiàn)的文字鏈接
browser.find_element_by_link_text("登錄").click() #點(diǎn)擊登錄鏈接
browser.find_element_by_partial_link_text("登").click()#只用了鏈接中的部分文字
參考資料:
[1]XPath教程
[2]Selenium Webdriver元素定位的八種常用方式
到此這篇關(guān)于淺談Selenium+Webdriver 常用的元素定位方式的文章就介紹到這了,更多相關(guān)Selenium Webdriver元素定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)圖片加文字水印OPenCV和PIL庫(kù)
本文來(lái)為大家介紹一下,使用python中的庫(kù)實(shí)現(xiàn)給圖片添加文字水印,openCV可以給圖片添加水印,如果要添加漢字水印那就要使用PIL庫(kù)2021-09-09
python編寫實(shí)現(xiàn)抽獎(jiǎng)器
這篇文章主要為大家詳細(xì)介紹了python編寫實(shí)現(xiàn)抽獎(jiǎng)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
python正則表達(dá)式match和search用法實(shí)例
這篇文章主要介紹了python正則表達(dá)式match和search用法,實(shí)例分析了正則表達(dá)式中match和search的功能、定義及相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
pytorch中關(guān)于distributedsampler函數(shù)的使用
這篇文章主要介紹了pytorch中關(guān)于distributedsampler函數(shù)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
python命令行運(yùn)行報(bào)錯(cuò)ModuleNotFoundError:No module named‘X
這篇文章主要介紹了python命令行運(yùn)行報(bào)錯(cuò)ModuleNotFoundError:No module named‘XXX‘找不到自定義模塊問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Python實(shí)現(xiàn)去除圖片中指定顏色的像素功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)去除圖片中指定顏色的像素功能,結(jié)合具體實(shí)例形式分析了Python基于pil與cv2模塊的圖形載入、運(yùn)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
NoSql數(shù)據(jù)庫(kù)介紹及使用Python連接MongoDB
MongoDB是一個(gè)非常流行的NoSQL數(shù)據(jù)庫(kù),常用于大規(guī)模數(shù)據(jù)存儲(chǔ)應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于NoSql數(shù)據(jù)庫(kù)及使用Python連接MongoDB的相關(guān)資料,需要的朋友可以參考下2023-06-06

