电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python selenium xpath定位操作

瀏覽:3日期:2022-07-12 15:55:36

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('//標(biāo)簽')

具體例子:

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

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

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

python selenium xpath定位操作

('//*[@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('//標(biāo)簽[@屬性==‘屬性值’]')

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

具體例子

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

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

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

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

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

具體例子:

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

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

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

python selenium xpath定位操作

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)似('//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)

python selenium xpath定位操作

上圖實(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('//td[contains(text(),’17051915200001’)]/following-sibling::td[8]/a[@class=’link’]')

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

python selenium xpath定位操作

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

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

如下所示:

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 劳动法网-专业的劳动法和劳动争议仲裁服务网| 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 方源木业官网-四川木门-全国木门专业品牌| 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 浙江宝泉阀门有限公司| led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 健康管理师报考条件,考试时间,报名入口—首页 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 间甲酚,间甲酚厂家-山东祥东新材料 | 高温高压釜(氢化反应釜)百科| 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 |