關於UI自動化中元素定位常用方法的個人總結
1、如果目標元素有id屬性,優先使用id定位;
2、元素locator儘可能保證簡潔,考慮locator中路徑的變化頻率,儘量減少後期更新和維護成本;
3、使用xpath時,不要一味的使用‘/’逐層進行選擇;合理使用‘/’和‘//’,能簡化表示式;
4、儘量使用函式和運算子,如contains(),text(),position()等;運算子包括算數運算子或邏輯運算子等;
以下舉例xpath常用語法:
1) xpath=//img[@alt='The image alt text']
2) xpath=//table[@id='table1']//tr[n]/td[n]
3) xpath=//a[contains(text(), 'test')] text屬性使用text()
4) xpath=//a[contains(@href, '#id1')]/a[n] 其餘屬性則使用@屬性名
5) xpath=//table[@class= 'style']//th[text()= 'xxx']/../td 其中../表示從子元素逆向定位父元素
6) xpath=//*[text()='right']
7) xpath=//*[starts-with(@href, 'xxx')]
8) xpath=//*[ends-with(@href, 'xxx')]
9) xpath=//*[matchs(text(), 'xxx')] 可使用正則表示式
10) xpath=//input[@name='name1' and @value='yes'] 支援邏輯運算子and/or/not
以下舉例css常用語法:
1) css用#表示id屬性,如#kw
2) css用.表示class屬性,如.slipt
3) css可直接使用標籤名稱,無任務識別符號,如input
4) css通過其他屬性定位時寫為:css=[name='kwname']
5) css也可通過標籤和屬性組合定位,如css=[a.text='xxx']