selenium自動化之xpath定位必會技能

selenium自動化之xpath定位必會技能

相信寫過ui自動化,對xpath定位感覺會特別親戚,那麼下面給大家分享些我們常常在寫腳本時易忽略的一些小細節和技巧。

首先使用xpath定位時切忌

  • 不要使用帶有空格的屬性
  • 不要使用自動生成的id、class 等
  • 使用firebug會事半功倍
  • 定位時一定要找到唯一的屬性要確保定位的唯一性,根據唯一的屬性進行各種定位
  • 查看是否存在frame

Xptah定位

1、按F12打開firepath點擊1處的箭頭,指定到要定位的元素,此時查看5出匹配的個數,若只有一個匹配則直接複製3初的路徑即可使用(需要關注2處的位置,是否在Top window中,若在frame中則需要先切換frame,調用切換frame的action即可)。

2、用contains關鍵字,定位代碼如下:

//a[contains(text(),忘記密碼)],contains中的text()表示標籤中的文本信息同時contains也支持@屬性名稱等如://a[contains(@id,』*****』)]等。

3、使用元素屬性定位,定位代碼如下:

//input[@id = pass],只要是該標籤中存在的屬性,理論上都可以使用(有些動態生成的屬性無法使用,過長的屬性也不推薦使用)例://input[@placeholder= 密碼]等。

4、使用層級定位,定位代碼如下:

//form[@id = login-form]//input[@placeholder= 密碼],先定位該元素的父節點或祖先節點,再定位當前節點,中間以「//」連接。層級定位可以結合parent::、ancestor::靈活使用。

5、使用兄弟節點定位,定位代碼如下:

//p[contains(text(),Dior會員登錄)]//following-sibling::ul[contains(@class,form-list)],following-sibling::表示往下查找該元素的兄弟節點,preceding-sibling::表示往上查找該元素的兄弟節點。

6、最不推薦的定位方式,定位代碼如下:

//*[@id="login-form"]/div/div[2]/div[1]/ul,F12打開chrome瀏覽器的開發者工具,點擊左上角的箭頭並移到需要定位的元素,在html中右擊>Copy>Copy XPath。

最後

1、firebug一定要看,上面表示當前元素在哪,是在主頁還是在frame裡面,要看好做對應的切換

2、下面表示你所寫的xpath對應的或者到的元素個數一定要唯一!一定要唯一!一定要唯一!!!

XPATH的幾個常用函數

1、contains ():

//div[contains(@id,in)] ,表示選擇id中包含有』in』的div節點

2、text():

由於一個節點的文本值不屬於屬性,比如「<a class=」baidu「 href=」baidu.com「>baidu</a>」,所以,用text():函數來匹配節點://a[text()=baidu]

3、last():

函數位置定位

4、starts-with():

//div[starts-with(@id,in)] ,表示選擇以』in』開頭的id屬性的div節點

5、not()函數,表示否定

//input[@name=『identity』 and not(contains(@class,『a』))] ,表示匹配出name為identity並且class的值中不包含a的input節點。

作者:腦洞大大的吃貨獅子座,喜歡專研技術,勤於總結歸納,用文字結交朋友,擅長與生活相愛相殺,樂於分享的一個技術狂人。軟 件 測 試 君

聽 說 看 了 這 個 號 可 以 干 掉 領 導

· 猜你喜歡的文章 ·

??br/>像我這樣的人,來自一位同學的內心獨白

關於介面測試看這一篇就夠了

測試上線的標準

Selenium+Java自動化之如何優雅繞過驗證碼

和開發溝通總會被拒絕該怎麼辦

Postman實戰入門

【成長篇】記錄自己第一次面試新人

從王者榮耀角度看測試工作如何上分「最強王者」

您的點贊、轉發、

將是小編持續更新的巨大動力↓↓

推薦閱讀:

作為80後90後太太,你的技能合格嗎?
知道 | 人類這個看起來噁心的技能,關鍵時刻卻能救命
新技能get,這不是上次電影院的那個男生嗎,又換女朋友了。
20天搞定中醫實踐技能方證-第18天

TAG:Selenium | 自動化 | 技能 |