最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python selenium xpath定位操作

 更新時(shí)間:2020年09月01日 11:25:32   作者:輝色秋天  
這篇文章主要介紹了python selenium xpath定位操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

xpath是一種在xm文檔中定位的語(yǔ)言,詳細(xì)簡(jiǎn)介,請(qǐng)自行參照百度百科,本文主要總結(jié)一下xpath的使用方法,個(gè)人看法,如有不足和錯(cuò)誤,敬請(qǐng)指出。

注意:xpath的定位 同一級(jí)別的多個(gè)標(biāo)簽 索引從1開(kāi)始 而不是0

1. 絕對(duì)定位:

此方法最為簡(jiǎn)單,具體格式為

xxx.find_element_by_xpath("絕對(duì)路徑")

具體例子:

xxx.find_element_by_xpath("/html/body/div[x]/form/input") x 代表第x個(gè) div標(biāo)簽,注意,索引從1開(kāi)始而不是0

此方法缺點(diǎn)顯而易見(jiàn),當(dāng)頁(yè)面元素位置發(fā)生改變時(shí),都需要修改,因此,并不推薦使用。

2.相對(duì)路徑:

相對(duì)路徑,以‘//'開(kāi)頭,具體格式為

xxx.find_element_by_xpath("http://標(biāo)簽")

具體例子:

xxx.find_element_by_xpath("http://input[x]") 定位第x個(gè)input標(biāo)簽,[x]可以省略,默認(rèn)為第一個(gè)

相對(duì)路徑的長(zhǎng)度和開(kāi)始位置并不受限制,也可以采取以下方法

xxx.find_element_by_xpath("http://div[x]/form[x]/input[x]"), [x]依然是可以省略的

("http://*[@id='J_login_form']/dl/dt/input[@id='J_password']"

3.標(biāo)簽屬性定位:

3.1標(biāo)簽屬性定位,相對(duì)比較簡(jiǎn)單,也要求屬性能夠定位到唯一一個(gè)元素,如果存在多個(gè)相同條件的標(biāo)簽,默認(rèn)只是第一個(gè),具體格式

xxx.find_element_by_xpath("http://標(biāo)簽[@屬性==‘屬性值']")

屬性判斷條件:最常見(jiàn)為id,name,class等等,目前屬性的類(lèi)別沒(méi)有特殊限制,只要能夠唯一標(biāo)識(shí)一個(gè)元素都是可以的

具體例子

xxx.find_element_by_xpath("http://a[@href='/industryMall/hall/industryIndex.ht']") xxx.find_element_by_xpath("http://input[@value='確定']") xxx.find_element_by_xpath("http://div[@class = 'submit']/input")

當(dāng)某個(gè)屬性不足以唯一區(qū)別某一個(gè)元素時(shí),也可以采取多個(gè)條件組合的方式,具體例子

xxx..find_element_by_xpath("http://input[@type='name' and @name='kw1']")

3.2 當(dāng)標(biāo)簽屬性很少,不足以唯一區(qū)別元素時(shí),但是標(biāo)簽中間中間存在唯一的文本值,也可以定位,其具體格式

xxx.find_element_by_xpath("http://標(biāo)簽[contains(text(),'文本值')]")

具體例子:

xxx.find_element_by_xpath("http://iunpt[contains(text(),'型號(hào):')]")

注意:盡量在html中復(fù)制此段文本,避免因?yàn)槿庋蹮o(wú)法分辨的字符導(dǎo)致定位失敗

3.3 其他的屬性值如果太長(zhǎng),也可以采取模糊方法定位,直接上示例

xxx.find_element_by_xpath(“//a[contains(@href, ‘logout')]”)

3.4 XPath 關(guān)于網(wǎng)頁(yè)中的動(dòng)態(tài)屬性的定位,例如,ASP.NET應(yīng)用程序中動(dòng)態(tài)生成id屬性值,可以有以下四種方法:

a.starts-with例子: input[starts-with(@id,'ctrl')] 解析:匹配以ctrl開(kāi)始的屬性值

b.ends-with 例子:input[ends-with(@id,'_userName')] 解析:匹配以u(píng)serName結(jié)尾的屬性值

c.contains() 例子:Input[contains(@id,'userName')] 解析:匹配含有userName屬性值

當(dāng)然,如果上面的單一方法不能完成定位,也可以采取組合式定位 類(lèi)似("http://input[@id='kw1']//input[start-with(@id,'nice']/div[1]/form[3])

以上是普通的情況,存在可以定位的屬性,當(dāng)某個(gè)元素的各個(gè)屬性及其組合都不足以定位時(shí),我們可以利用其兄弟節(jié)點(diǎn)或者父節(jié)點(diǎn)等各種可以定位的元素進(jìn)行定位,先看看xpath中支持的方法:

1、child 選取當(dāng)前節(jié)點(diǎn)的所有子元素

2、parent 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

3、descendant選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)

4、ancestor 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)

5、descendant-or-self選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身

6、ancestor-or-self 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身

7、preceding-sibling選取當(dāng)前節(jié)點(diǎn)之前的所有同級(jí)節(jié)點(diǎn)

8、following-sibling選取當(dāng)前節(jié)點(diǎn)之后的所有同級(jí)節(jié)點(diǎn)

9、preceding選取文檔中當(dāng)前節(jié)點(diǎn)的開(kāi)始標(biāo)簽之前的所有節(jié)點(diǎn)

10、following選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)

11、self 選取當(dāng)前節(jié)點(diǎn)

12、attribute 選取當(dāng)前節(jié)點(diǎn)的所有屬性

13、namespace選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)

上圖實(shí)例,需要點(diǎn)擊訂單號(hào)為17051915200001的發(fā)貨按鈕,這時(shí)候不能直接定位到發(fā)貨按鈕,而是先要定位到訂單號(hào)元素,再定位他的兄弟節(jié)點(diǎn)。

參照上圖,我們首先定位到td標(biāo)簽中包含訂單號(hào)的td元素,然后選擇其之后的同級(jí)節(jié)點(diǎn),following-sibling,我們要找的元素在后面的第8個(gè)td標(biāo)簽下,因此定位可以寫(xiě)名為下面的格式

Xxx.find_element_by_xpath("http://td[contains(text(),'17051915200001')]/following-sibling::td[8]/a[@class='link']")

preceding-sibling 情況類(lèi)似,但是所有元素的排列順序是相反的(和following-sibling相反),如圖:

其他方法的使用方式相同, 11-13目前沒(méi)有使用過(guò),也沒(méi)有搜索到實(shí)際使用的案例,如果有人知道,希望不吝賜教。

補(bǔ)充知識(shí):Python+selenium:用“and”連接屬性定位元素

如下所示:

find_element_by_xpath("http://input[@id='kw' and @class='su']/span/input") //用and來(lái)連接屬性定位元素

以上這篇python selenium xpath定位操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python自制一個(gè)回收站清理器

    使用Python自制一個(gè)回收站清理器

    經(jīng)常筆記本電腦的回收站存儲(chǔ)了很多的文件,需要打開(kāi)回收站全部選中進(jìn)行清理。這篇文章將使用Python自制一個(gè)回收站清理器,需要的可以參考一下
    2023-03-03
  • Python日期時(shí)間模塊arrow的具體使用

    Python日期時(shí)間模塊arrow的具體使用

    Python中有很多時(shí)間和日期處理的庫(kù),有time、datetime等,本文主要介紹了一下arrow,arrow是一個(gè)專門(mén)處理時(shí)間和日期的輕量級(jí)Python庫(kù),感興趣的可以了解一下
    2021-09-09
  • python excel和yaml文件的讀取封裝

    python excel和yaml文件的讀取封裝

    這篇文章主要介紹了python excel和yaml文件的讀取封裝,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python及PyCharm下載與安裝教程

    Python及PyCharm下載與安裝教程

    這篇文章主要為大家詳細(xì)介紹了Python及PyCharm下載與安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python Pillow圖像處理方法匯總

    python Pillow圖像處理方法匯總

    這篇文章主要介紹了python Pillow圖像處理方法匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • python支付寶支付示例詳解

    python支付寶支付示例詳解

    這篇文章主要為大家詳細(xì)介紹了python支付寶支付示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Django3基于WebSocket實(shí)現(xiàn)WebShell的詳細(xì)過(guò)程

    Django3基于WebSocket實(shí)現(xiàn)WebShell的詳細(xì)過(guò)程

    最近工作中需要開(kāi)發(fā)前端操作遠(yuǎn)程虛擬機(jī)的功能,簡(jiǎn)稱WebShell,普通應(yīng)用大部分用的都是wsgi.py配合nginx部署線上服務(wù). 這次主要使用asgi.py,具體實(shí)現(xiàn)過(guò)程跟隨小編一起看看吧
    2021-08-08
  • python使用pyinstaller將代碼打包為exe程序

    python使用pyinstaller將代碼打包為exe程序

    這篇文章主要為大家詳細(xì)介紹了python如何使用pyinstaller將代碼打包為exe程序,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-11-11
  • Python對(duì)口紅進(jìn)行數(shù)據(jù)分析來(lái)選定情人節(jié)禮物

    Python對(duì)口紅進(jìn)行數(shù)據(jù)分析來(lái)選定情人節(jié)禮物

    情人節(jié)送小仙女什么禮物?讓我們來(lái)用Python對(duì)口紅進(jìn)行數(shù)據(jù)分析,那個(gè)女孩子會(huì)拒絕這樣精心挑選的禮物,感興趣的小伙伴快來(lái)看看吧
    2022-02-02
  • Python中的推導(dǎo)式使用詳解

    Python中的推導(dǎo)式使用詳解

    這篇文章主要介紹了Python中的推導(dǎo)式使用詳解,本文分別講解了列表推導(dǎo)式、字典推導(dǎo)式、集合推導(dǎo)式使用實(shí)例,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

彭阳县| 宁陵县| 彰武县| 永济市| 贵南县| 冷水江市| 蓝山县| 白沙| 郯城县| 丽江市| 哈尔滨市| 云林县| 揭东县| 通榆县| 安福县| 郁南县| 焦作市| 织金县| 伊宁市| 牡丹江市| 泰顺县| 兴山县| 丹棱县| 广安市| 始兴县| 西充县| 吉安市| 肇源县| 塔河县| 固原市| 嘉鱼县| 瓦房店市| 翁牛特旗| 山西省| 库尔勒市| 营山县| 确山县| 安岳县| 五莲县| 原平市| 宜章县|