這幾天在做自動化測試的時候發現一個問題,用JQUERY定位時,總是報錯,MES:JQUERY IS NOT DEFINED。
檢查自己定位沒有問題,后來想是不是語法出了問題。
切換成XPATH來定位,還是報錯。
然后再語法調試,發現NAME屬性不能定位,不具有唯一性,有三個NAME值一樣的IFRAME。
當時具體情況是:IFRAME有三個屬性,NAME,SRC,CLASS。三個IFRAME除了SRC值不一樣外,其它兩個屬性的值都一樣。
所以只能通過SRC值來區分IFRAME了。
最后解決是通過:dom=document.querySelector("[src='.....']") 這個語法定位成功了。
通過這個事情,我聯想到,在做自動化測試的時候,定位是一個困難點,我習慣用JQUERY來定位,因為我是用RF框架做自動化的。
而定位碰到困難時,很大一部分是有FRAME,IFRAME存在,特別是多層嵌套的IFRME。
當發現定位失敗時,第一步:先調試語法,如果確信定位語法沒有問題,就考慮第二步。
第二步:檢查IFRAME是否存在,存在幾個(可能谷歌瀏覽器開發者工具最下面一欄查看到IFRAME的個數及位置),如果存在IFRAME,就先定位IFRAME。一般通過IFRAME的NAME,ID來定位IFRAME。
大部份的IFRAME能通過NAME,ID定位出來。(如果沒有NAME,ID,就參考另一篇博客,自已賦值一個ID),如果存在多個IFRAME,就一個一個的往里定位,直到定位到我們需要定位元素的那一層。
第三步:如果不存在IFRAME,就檢查是否切換了窗口。如果切換了窗口,就切換到我們需要定位元素的那個窗口,然后就可以正常定位元素 了。
具體情況還需要自己在做項目的時候,多總結,多練習。我這里只是提供一個思路。