淺談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)文章
解決pycharm每次打開項(xiàng)目都需要配置解釋器和安裝庫(kù)問(wèn)題
最近在使用pycharm開發(fā)新項(xiàng)目的時(shí)候,每次打開新的工程都顯示沒(méi)有解釋器,要不加了解釋器就是代碼一堆沒(méi)有紅色錯(cuò)誤提示沒(méi)有模塊問(wèn)題,很多朋友都遇到過(guò)這種情況,現(xiàn)小編把解決方法分享到腳本之家平臺(tái),需要的朋友一起看看吧2020-02-02Keras 利用sklearn的ROC-AUC建立評(píng)價(jià)函數(shù)詳解
這篇文章主要介紹了Keras 利用sklearn的ROC-AUC建立評(píng)價(jià)函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06詳解Python設(shè)計(jì)模式編程中觀察者模式與策略模式的運(yùn)用
這篇文章主要介紹了Python設(shè)計(jì)模式編程中觀察者模式與策略模式的運(yùn)用,觀察者模式和策略模式都可以歸類為結(jié)構(gòu)型的設(shè)計(jì)模式,需要的朋友可以參考下2016-03-03python獲取外網(wǎng)IP并發(fā)郵件的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇python獲取外網(wǎng)IP并發(fā)郵件的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10使用python實(shí)現(xiàn)抓取中國(guó)銀行外匯牌價(jià)首頁(yè)數(shù)據(jù)實(shí)現(xiàn)
這篇文章主要為大家介紹了如何使用python實(shí)現(xiàn)抓取中國(guó)銀行外匯牌價(jià)首頁(yè)數(shù)據(jù)的實(shí)現(xiàn)示例,有需要的同學(xué)可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10python連接FTP服務(wù)器的實(shí)現(xiàn)方法
本文主要介紹了python連接FTP服務(wù)器的實(shí)現(xiàn)方法,主要使用ftp操作進(jìn)行連接FTP服務(wù)器、獲取當(dāng)前目錄文件清單、上傳文件等操作,具有一定的參考價(jià)值,感興趣的可以了解一下2022-06-06