爲什麼要學習元素定位?
1)計算機沒有智能到人的程度。
2)計算機不能像手動測試人員一樣通過眼看,手操作鼠標點擊,操作鍵盤輸入。
3)計算機通過一系列計數手段找到元素(按鈕、輸入框、模擬鍵盤等)
元素定位的工具或手段有哪些?
1)css選擇器 2)xpath
環境及工具
1.材料:
1)firefox35
2)firebug插件
3)firepath插件
2.安裝步驟:查看文末
css選擇器
.weixinBottom通過class的值進行定位
#wx通過id的值進行定位
div通過標籤進行定位
meta,link匹配兩種標籤結果集
div a匹配div標籤中的所有後代a標籤
div>a匹配div後是一個a標籤的節點
div+div匹配div後面的同胞div節點
[id]匹配所有含有id屬性的標籤
[id='wx']匹配所有含有id並且值爲wx的標籤
[type="submit"]
[class~="Login"]定位標籤屬性class值中有獨立Login的節點
[name|=msapplication]定位標籤屬性name的值以msapplicatio開頭的節點(該節點需爲一個完整的單詞)
[src^="http://"]匹配scr屬性以http://開頭的節點
[src$="js"]匹配src屬性以js結尾的節點
[src*="ifengimg"]匹配src屬性中含有ifengimg的節點
img:only-child匹配所有獨生子女的img節點
body>div:nth-child(1) 匹配body的第n個div子節點
body>*:nth-last-child(1) 匹配body的最後一個子節點
:not(link)查找不是link標籤的節點
xpath路徑表達式
通過節點名定位(http://www.ifeng.com/)
html 定位到html節點
html/head 定位到head節點
html/head/meta 定位好head中的所有meta節點
相對路徑定位節點(http://www.ifeng.com/)
//title 使用相對路徑定位到title節點
//meta 使用相對路徑定位到所有meta節點
使用.和..定位本身和父節點(http://www.ifeng.com/)
/html/head/title/./.. 使用.定位到title本身再使用..定位到title的父節點
/html/head/title/./../body 使用.定位到title本身再使用..定位到title的父節點,然後在定位到body子節點
通過@定位 格式 標籤名[@屬性名='屬性值']
/meta[@name='author'] 定位到所有的meta,再從中找到name=author的那一個
//div[@id] 定位到所有div標籤,再過濾出有id屬性的節點
通配符定位節點
//* 匹配所有節點
/* 匹配絕對路徑最外層
//*[@*] 匹配所有有屬性的節點
/html/node()/meta 匹配所有含有meta的節點
糗事百科練習xpath
//div[@id="content-left"]/div 定位到所有糗事帖子節點
//div[@id="content-left"]/div[1] 通過索引定位到第一個節點
//div[@id="content-left"]/div[last()] 通過last()索引定位到結果中的最後一個
//div[@id="content-left"]/div[last()-n] 通過last()-n索引定位到結果集中的倒數第n+1個
//div[@id="content-left"]/div[position()=n] 定位到結果集中第n個節點
//div[@id="content-left"]/div[position()<n] 定位到結果集中索引小於n的節點
//div[@id="content-left"]/div[position()>n] 定位到結果集中索引大於n的節點
//span[i=n] 定位到好笑計數等於n的節點
//span[i>n] 定位到好笑計數大於n的節點
firebug、firepath安裝
①安裝Firefox(不選自動更新)
②安裝firebug插件
或點擊從本地文件安裝
②安裝firepath插件