精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
利用Xpath和jQuery進行元素定位示例

利用Selenium在做前端UI自動化的時候,在元素定位方面主要使用了XPATH和jQuery兩種方法。XPATH作為主要定位手段,jQuery作為補充定位手段。因為在通過XPATH進行定位的時候,Selenium是通過游覽器原生的API進行操作,更接近模擬用戶的操作;而通過jQuery作為定位的時候,實質(zhì)是向游覽器發(fā)送一段JavaScript代碼,雖然可以達到目的,但模擬效果不如前者。

以下列舉了一些常用的定位寫法。

  • 通過id定位元素
<div class='input-outer' data-render='true'> <input type='text' name='templateName2' id='tempdata' size='20' maxlength='20' class='input tuiRequired tuiUpper tuiTrim myRule' value=''></div>

jQuery寫法: $('input#tempdata')
XPATH寫法: //input[@id='tempdata']

  • 通過class定位元素
<span class='icon sm icon-cross hover'></span>

jQuery寫法: $('span.icon.sm.icon-cross.hover')
XPATH寫法: //span[@class='icon sm icon-cross hover']

  • 通過文本內(nèi)容定位元素
<span class='name'>CA模板管理</span>

jQuery寫法: $('span:contains('CA模板管理')')
XPATH寫法: //span[contains(text(),'CA模板管理')]

  • 多屬性組合定位元素
<div class='tab-title'>模板規(guī)則列表</div>

定位思路:通過class和文本內(nèi)容定位元素
jQuery寫法: $('div.tab-title:contains('模板規(guī)則列表')')
XPATH寫法: //div[@class='tab-title' and contains(text(),'模板規(guī)則列表')]

  • 匹配子元素
<div class='h-ctrl h-close'> <span class='icon sm icon-cross hover'>A</span></div><div class='x-ctrl x-close'> <span class='icon sm icon-cross hover'>A</span></div>

定位第二個A的思路:兩個A的父元素不同,通過父元素定位子元素
寫法1:
jQuery寫法: $('div.x-ctrl.x-close > span.icon.sm.icon-cross.hover')
XPATH寫法: //div[@class='x-ctrl x-close']/span[@class='icon sm icon-cross hover']
寫法2:
jQuery寫法: $('div.x-ctrl.x-close').children('span.icon.sm.icon-cross.hover')
XPATH寫法: //div[@class='x-ctrl x-close']/child::span[@class='icon sm icon-cross hover']

  • 匹配到的元素的第一個
<div class='h-ctrl h-close'>    <span class='icon sm icon-cross hover'>A</span></div><div class='x-ctrl x-close'>    <span class='icon sm icon-cross hover'>A</span></div>

定位第一個A
jQuery寫法一: $('span.icon.sm.icon-cross.hover').first()
jQuery寫法二: $('span.icon.sm.icon-cross.hover').eq(0)
XPATH寫法: (//span[@class='icon sm icon-cross hover'])[1]

  • 匹配到的元素的最后一個
<div class='h-ctrl h-close'> <span class='icon sm icon-cross hover'>A</span></div><div class='x-ctrl x-close'> <span class='icon sm icon-cross hover'>A</span></div>

定位最后一個A
jQuery寫法一: $('span.icon.sm.icon-cross.hover').last()
jQuery寫法二: $('span.icon.sm.icon-cross.hover').eq(-1)
XPATH寫法: (//span[@class='icon sm icon-cross hover'])[last()]

  • 匹配到的元素的倒數(shù)第二個
<div class='h-ctrl h-close'>    <span class='icon sm icon-cross hover'>A</span></div><div class='x-ctrl x-close'>    <span class='icon sm icon-cross hover'>A</span></div><div class='y-ctrl y-close'>    <span class='icon sm icon-cross hover'>A</span></div>

定位倒數(shù)第二個A
jQuery寫法: $('span.icon.sm.icon-cross.hover').eq(-2)
XPATH寫法: (//span[@class='icon sm icon-cross hover'])[last()-1]

  • 匹配當前元素的后代元素(子、孫等)
<div class='x-window'> <div class='h-ctrl h-close'> <span class='icon sm icon-cross hover'>A</span> </div></div> <div class='y-window'> <div class='h-ctrl h-close'> <span class='icon sm icon-cross hover'>A</span> </div></div> <div class='z-window'> <div class='h-ctrl h-close'> <span class='icon sm icon-cross hover'>A</span> </div></div>

定位中間的A
jQuery寫法: $('div.y-window').find('span.icon.sm.icon-cross.hover')
XPATH寫法: //div[@class='y-window']/descendant::span[@class='icon sm icon-cross hover']

  • 通過同級元素進行匹配
<div class='x-ctrl x-close'>    <span class='icon sm icon-cross hover'>B</span>    <div class='h-focus'>        <span class='icon sm icon-cross hover'>A</span>    </div></div><div class='x-ctrl x-close'>    <span class='icon sm icon-cross hover'>C</span>    <div class='h-focus'>        <span class='icon sm icon-cross hover'>A</span>    </div></div>

定位第二個A
jQuery寫法: $('span:contains('C')').siblings('div.h-focus').children('span:contains('A')')
XPATH寫法: //span[contains(text(),'C')]/following-sibling::div[@class='h-focus']/span[contains(text(),'A')]

  • 稍微復(fù)雜一點的定位
<div class='x-window'> <td class='rule'> <span>A</span> </td> <td class='rule'> <div class='button'>'控制按鈕'</div> </td></td><div class='x-window'> <td class='rule'> <span>B</span> </td> <td class='rule'> <div class='button'>'控制按鈕'</div> </td></td>

舉個例子,比如說頁面上的A和B元素是動態(tài)的,但是有一個規(guī)律,A或者B的父元素的同級元素一定有一個'控制按鈕'的子元素。
定位 '控制按鈕'
jQuery寫法: $('span:contains('B')').parent('td.rule').siblings('td').children('div:contains('控制按鈕')')
XPATH寫法: //span[contains(text(),'B')]/parent::td[@class='rule']/preceding-sibling::td/child::div[contains(text(),'控制按鈕')]

注:以上只是在工作時遇到比較典型的元素定位進行的舉例,定位方式不是唯一,可能有多重定位方式。更多的定位方式請參考jQuery語法和XPath語法。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jQuery響應(yīng)式內(nèi)容選項卡插件
HTML 實現(xiàn)仿 Windows 桌面主題特效
jQuery萬年歷日歷設(shè)置代碼
jquery moblie磁貼作風(fēng)九宮格
How I made an iPhone 4 in CSS3
javascript – 如何在Ember.js RC2中的索引模板中的元素上運行一些JS
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 福泉市| 台山市| 宿松县| 九寨沟县| 东阿县| 定远县| 米林县| 阜平县| 太仓市| 东山县| 黄山市| 察隅县| 德安县| 怀宁县| 渭源县| 抚松县| 宣武区| 织金县| 兴山县| 正镶白旗| 海兴县| 拉萨市| 韩城市| 和平县| 盘山县| 盐源县| 南昌市| 阿拉善右旗| 信宜市| 来安县| 张家界市| 松阳县| 德令哈市| 湖北省| 定州市| 化州市| 黔西县| 黄大仙区| 汝南县| 兰坪| 丰城市|