UI自動化測試元素定位思想

2021-09-08 10:37:53 字數 905 閱讀 9952

2023年的最後一天,以一篇短文紀念一下。

經常看到有同學說ui自動化測試定位難,找不到北。這話是不錯的,定位是難,靈活且複雜,需要經驗加技術,但是有寫東西是可以提煉出來作為思想去推而廣之的。

簡單來說,ui元素定位思想應該如下:

大道至簡指的是有明顯特徵的元素一定要用明顯的特徵去定位。比如有id有name的元素,就不要捨近求遠,一定要用最簡單的辦法去定位。

一般來說,良好的html**頁面結構是很清晰的。很多同學在用class定位的時候經常會發現頁面上有很多同名class,很難定位到自己需要的那乙個class。這時候需要應用分而治之的思想,也就是分治法。先把頁面劃分成幾個單獨的區域(有點像是html5裡的section),這樣每個區域的class就是有特徵的了,這時候定位就很容易了。

跟上面的思想差不多,先定位大一點的有特徵的元素,再去這裡面定位具體的細小的元素。這是我一直以來強調的層級定位

定位最怕在一棵樹上吊死。當你一種方式不行的時候就要視情況換一種方式。比如用xpath定位在firefox上是妥妥的,結果去了ie上就各種碰壁,這是因為低版本的ie xpath支援的不好,所以有些表示式不識別。這時候你就需要換個方法去做。另外自動生成的xpath是魔鬼,不要把你的靈魂出賣給魔鬼。

有些元素是有特殊屬性的,但是這些屬性是動態變化的。我記得我在wordpress實戰裡專門講過這個問題。比如每一篇新文章的id都是post-(post_id)的形式,這時候我們就要想辦法去獲得post_id,然後拼接字串得到新文章的id,再通過這個id去定位元素。

我記得有些同學用類似於sizzle之類的js框架結合webdriver的js引擎去做元素定位和測試,然後頓時覺得自己逼格爆表,橫行霸盜。其實webdriver現在用的也是sizzle,注入sizzle其實是不需要的。不過殊途同歸,只要能夠優雅的定位(不要用機器自動生成的xpath)到元素,一切方法和手段都是等價的。

UI自動化元素定位

1.id定位 find element by id self,id 2.name定位 find element by name self,name 3.class定位 find element by class name self,name 4.tag定位 find element by tag n...

UI自動化 Selenium元素定位

ui自動化要做的就是模擬滑鼠或鍵盤操作,從而執行測試用例的行為。模擬滑鼠操作更多是通過控制元素進行動作的,而控制元素的第一步就是定位元素。接下來,結合selenium介紹幾種常見的元素定位方法 find element by id 通過id來定位元素 在html中,id是唯一的,通過id但部分元素可...

UI自動化測試3 元素定位

1.安裝 firebugs 和 firepath 我的建議是大家定位元素的時候,最好借助於firefox瀏覽器,個人覺得方便好用。下面我大概介紹下怎麼安裝firebugs和firepath firefox 附加元件 直接搜firebugs 和 firepath 裝好以後重啟瀏覽器就好了。2.頁面元素...