Xpath 與Css 定位方式的比較

1. CSS locator比XPath locator速度快笋轨,特別是在IE下面(IE沒有自己的XPath 解析器(Parser))

2. 對于文本的處理xpath更強(qiáng)大使用, text()匹配的是顯示文本信息俭驮。

String locator_Xpath = "http://*[contains(text(),'test')]";

  但需要注意的是text()獲取的是當(dāng)前元素的文本秸架,不包括其子元素的文本羹饰。如下代碼text()得到的結(jié)果是"Please

click here"仔涩。但如果使用$("#id1").text()獲取的是"Memo Please click

here",使用selenium獲取元素text也是"Memo Please click here"饲常。

<div id="id1"><span>Memo<span>? ? Please click here</div>


3. 對于class屬性Css能直接匹配部分涯呻,而Xpath對于class跟普通屬性一致,使用字符串精確匹配面徽,需要使用contains()函數(shù)才能匹配部分字符串

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String locator_Xpath="http://div[@class='class1 popup js-dragable alert-msg']//input[@class='class3']";

String locator_Xpath="http://div[contains(@class,'popup js-dragable alert-msg')]//input[@class='class3']";

String locator_Css = ".class1.js-dragable .class3"


?4. 使用祖先元素屬性與當(dāng)前元素屬性組合處理時(shí)

<div class="111"><div><div><input class = "222"/></div></div></div>String locator_xpath="http://div[@class='111'/*/*/*[@class='222']]";

String locator_xpath="http://div[@class='111'//[@class='222']]"String locator_css = ".111 .222";

?*注意兩個(gè)class之間有一個(gè)空格表示層級關(guān)系艳丛,且空格選擇所有層級的子元素,而>只選擇一代


5.模糊匹配

?XPathCss

選取屬性值中的部分string匹配//span[contains(@class,'popup-btn js-dragable')]span[title*='456']

?//input[starts-with(@name,'name1')]input[name^='name1']

?//input[ends-with(@name,'name1')]input[name$='name1']







?**ends-with()?function is part of XPath 2.0 but browsers generally only support 1.0.


6.多個(gè)屬性匹配

??? xpath=//a[@class='name' and value='123']

??? css = a[.name][value='123']


7. 第n個(gè)子元素的選擇

<div class="category_depth_1 bnr"><li><a href="/estore/kr/zh/c/1" class="on">護(hù)膚</a></li><li><a href="/estore/kr/zh/c/1" class="on">家電</a></li><li><a href="/estore/kr/zh/c/1" class="on">美妝</a></li><li><a href="/estore/kr/zh/c/1" class="on">母嬰</a></li><li><a href="/estore/kr/zh/c/1" class="on">電子產(chǎn)品</a></li></div>String locator_Xpath = "http://*[@class="category_depth_1 bnr"]//li[1]"String locator_Css = ".category_depth_1.bnr li:first-child"String locator_Css = ".category_depth_1.bnr li:last-child"String locator_Css = ".category_depth_1.bnr li:nth-child(1)"#index都是從1開始

以上元素如果選擇點(diǎn)擊li元素有可能點(diǎn)擊不生效而選擇點(diǎn)擊a標(biāo)簽趟紊,這個(gè)時(shí)候需要注意index還是要標(biāo)在li標(biāo)簽后面String locator_Xpath = "http://*[@class="category_depth_1 bnr"]//li[1]/a"

String locator_Css = ".category_depth_1.bnr li:first-child a"

String locator_Css = ".category_depth_1.bnr li:last-child>a"

String locator_Css = ".category_depth_1.bnr li:nth-child(1)>a"


8. 擁有某個(gè)屬性的元素

  xpath= //*[@title]

  css= *[title]

9. 擁有子元素a的P元素

  xpath= //div[a]

  css 不能實(shí)現(xiàn)

10. 匹配祖先元素

  xpath= div[@id="id1"]//ancestor::tr//td

  css 不能實(shí)現(xiàn)

?11. 查找兄弟元素氮双, Css只能查找元素后面的元素,不能向前找

  xpath= //div[@class="class1"]//preceding-sibling::div[1]

  xpath= //div[@class="class1"]//follow-sibling::div[1]

  css= div.class1+div

12. 查找不包含not霎匈,以不包含display: none為例

  xpath= //div[@class="name"?and not(contains(@style,"display: none"))]

  css= div.name:not([style*='display: none'])

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末戴差,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铛嘱,更是在濱河造成了極大的恐慌暖释,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墨吓,死亡現(xiàn)場離奇詭異球匕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帖烘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門亮曹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秘症,你說我怎么就攤上這事照卦。” “怎么了乡摹?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵役耕,是天一觀的道長。 經(jīng)常有香客問我聪廉,道長蹄葱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任锄列,我火速辦了婚禮图云,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘邻邮。我一直安慰自己竣况,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布筒严。 她就那樣靜靜地躺著丹泉,像睡著了一般情萤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摹恨,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天筋岛,我揣著相機(jī)與錄音,去河邊找鬼晒哄。 笑死睁宰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寝凌。 我是一名探鬼主播柒傻,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼较木!你這毒婦竟也來了红符?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤伐债,失蹤者是張志新(化名)和其女友劉穎预侯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體峰锁,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雌桑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祖今。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拣技,死狀恐怖千诬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膏斤,我是刑警寧澤徐绑,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站莫辨,受9級特大地震影響傲茄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沮榜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一盘榨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蟆融,春花似錦草巡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽查乒。三九已至,卻和暖如春郁竟,著一層夾襖步出監(jiān)牢的瞬間玛迄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工棚亩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蓖议,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓蔑舞,卻偏偏與公主長得像拒担,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子攻询,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5从撼? 答:HTML5是最新的HTML標(biāo)準(zhǔn)肛响。 注意:講述HT...
    kismetajun閱讀 27,489評論 1 45
  • 大部分人在使用selenium定位元素時(shí)邮破,用的是xpath定位,因?yàn)閤path基本能解決定位的需求水泉。css定位往往...
    田小田txt閱讀 1,849評論 0 4
  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級和職位的變化拯杠,入門級到專家級掏婶,廣度和深度都會有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,587評論 0 7
  • 【本文參考了蟲師和測試開發(fā)棧文章潭陪,僅供個(gè)人學(xué)習(xí)總結(jié)使用】 一雄妥、問題: 通常情況下,元素定位使用id依溯、name老厌、cl...
    心無旁騖_閱讀 2,759評論 0 3
  • 狐貍和金魚 狐貍坐在河岸邊,對著一條有著漂亮大尾巴的金魚說:“美麗的金魚妹妹黎炉,我們聊聊天吧枝秤?” 金...
    開在云端的四葉草閱讀 1,801評論 0 0