1. 程式人生 > >Robot Framework自動化測試-元素定位之css

Robot Framework自動化測試-元素定位之css

有了前面介紹的id、name、xpath定位方式,對於平時需要使用的定位方式基本都能做到,接下來在介紹一個稍微有點難度的css定位。css定位靈活,方便,但需要有點點基礎。
還是以百度搜索的為例做說明:

<html>
  <body link="#0000cc">
    <div id="wrapper" style="display: block;">
      <div id="content" style="display: block;">
      <div id="u1" style="display: block;"
> <div id="m"> <p id="lg"> <p id="nv"> <div id="fm"> <form id="form" class="fm" action="/s" name="f1"> <span class="s_ipt_wr"> <input id="kw" type="text"
name="wd"> ......

先看個表格吧,簡單整理了下,以便說明:

選擇器 例子 說明
* * 通用元素選擇器,匹配任何元素
E div 標籤選擇器,匹配所有使用 E 標籤的元素
.info class .s_ipt_wr 匹配所有 class 屬性中包含 info 的元素
footer id kw 匹配所有 id 屬性等於 footer 的元素
E,F div,p 多元素選擇器,同時匹配所有 E 元素或 F 元素,E 和 F 之間用逗號分隔
E F div p 後代元素選擇器,匹配所有屬於 E 元素後代的 F 元素,E 和 F 之間用空格分隔
E > F div>p 子元素選擇器,匹配所有 E 元素的子元素 F
E + F p+div 毗鄰元素選擇器,匹配緊隨 E 元素之後的同級元素 F (只匹配第一個)
E ~ F p ~ div 同級元素選擇器,匹配所有在 E 元素之後的同級 F 元素
E[att=’val’] div[id=”kw”] 屬性 att 的值為 val 的 E 元素 (區分大小寫)
E[att^=’val’] div[id^=”kw”] 屬性 att 的值以 val 開頭的 E 元素 (區分大小寫)
E[att$=’val’] div[id$=”kw”] 屬性 att 的值以 val 結尾的 E 元素 (區分大小寫)
E[att*=’val’] div[id*=”kw”] 屬性 att 的值包含 val 的 E 元素 (區分大小寫)
E[att1=’v1’][att2*=’v2’] form[id=”form”][class=”fm”] 屬性 att1 的值為 v1,att2 的值包含 v2 (區分大小寫)
E:contains(‘xxxx’) 內容中包含 xxxx 的 E 元素
E:not(s) 匹配不符合當前選擇器的任何元素
E:nth-child() div:nth-child(1) 找他的子元素,括號中的數字從1開始
E:first div:first 在其父元素中的E子元素集合中排在第1個的E元素
E:last div:last 在其父元素中的E子元素集合中排在最後1個的E元素

上面的表格中基本涵蓋了平時所用的所有定位方式