IOS 自動化,幾種特殊情況下 UI 元素獲取的方式
最近做 IOS 自動化,總結幾種 UI 元素查詢方式(同時做個記錄),參考各種資料,按查詢元素的順序速度,從快到慢的順序如下:ios_predicate >> accessibility_id >> class_name >>xpath,因此首選 ios_predicate 。
1、核取方塊如何判斷是否勾選
IOS,核取方塊勾選和未勾選狀態下,核取方塊的 value 值是不同的,核取方塊勾選時 value == '1',未勾選時 value 值不存在,因此可以增加判斷條件,來判斷是否勾選,例如登入頁 - 記住密碼核取方塊,可以用如下語句進行判斷:
if self.is_element_present(MobileBy.IOS_PREDICATE, "type == 'XCUIElementTypeButton' AND value == '1' AND label == '記住密碼'") == 'False':
判斷條件不成立時,即為:未勾選記住密碼
if self.is_element_present(MobileBy.IOS_PREDICATE, "type == 'XCUIElementTypeButton' AND value == '1' AND label == '記住密碼'") == 'True':
判斷條件成立時,即為:已勾選記住密碼
2、元素文字內容較長時,可用 CONTAINS 條件判斷,例如:彈框中提示語比較長時,且包含不確定文字內容時,可以提取確定文字內容進行判斷,示例如下:
if self.is_element_present(MobileBy.XPATH,
'//[@label="溫馨提示"]') == "True" and self.is_element_present(
MobileBy.XPATH,
f'//[@label="檢測到目標資料夾下已經存在相同名稱 [{file_name}] 的資料夾, 確定要繼續匯入嗎?"]') == "True":
file_name 屬於不確定內容,可以改為:
if self.is_element_present(MobileBy.XPATH,
'//[@label="溫馨提示"]') == "True" and self.is_element_present(MobileBy.IOS_PREDICATE, "type == 'XCUIElementTypeStaticText' AND value CONTAINS '檢測到目標資料夾下已經存在相同名稱'") == "True":
這種寫法的好處是,無論檔名稱如何變化,都不影響結果判斷。
3、Android 中可以用 len(列表) 長度進行判斷,IOS 判斷一個列表為空,無法使用 len(列表) 長度進行判斷,但可以使用:是否存在 label="空列表來判斷:
示例如下:
if self.is_element_present(MobileBy.XPATH, '//[@label="空列表"]') == 'True':
相關文章
- JS獲取元素寬高的兩種情況JS
- 獲取或操作DOM元素特性的幾種方式
- js獲取頁面dom元素的幾種常用方式JS
- 深入分析幾種PHP獲取客戶端IP的情況轉PHP客戶端
- javascript獲取url地址的幾種方式JavaScript
- eclipse 專案gradle無反應的幾種特殊情況EclipseGradle
- VC 各種情況下的視窗控制程式碼的獲取
- [css佈局1]不知寬高情況下,水平垂直居中的幾種方式CSS
- PG獲取檔案大小的幾種方式
- Spring - 獲取ApplicationContext的幾種方式SpringAPPContext
- 在SpringMVC中獲取request物件的幾種方式SpringMVC物件
- Android自動化-如何獲取檢視元素屬性?Android
- ORACLE不使用工具的情況下獲取物件DDLOracle物件
- 獲取WebLogic版本號有以下幾種方式Web
- js中this指向有幾種情況JS
- DOM對映的特殊情況
- 獲取Java執行緒返回值的幾種方式Java執行緒
- Spring在程式碼中獲取bean的幾種方式SpringBean
- AngularJS中獲取資料來源的幾種方式AngularJS
- [zt] Oracle不使用索引的幾種情況Oracle索引
- 在專案中獲取Spring的Bean的幾種方式SpringBean
- UI 自動化元素定位規範問題UI
- UI自動化測試-web元素選擇UIWeb
- 獲取ul元素下的所有li元素
- 獲取cookie的3種方式Cookie
- 沒有介面文件的情況下如何開展介面自動化測試?
- js獲取數字陣列最大值的幾種方式JS陣列
- js中bool值為false的幾種情況JSFalse
- 3種方式自動化控制APPAPP
- ubuntu20.04禁止自動休眠的幾種方式Ubuntu
- 獲取div元素下li元素的數目
- DBMS_BACKUP_RESTORE用於特殊情況下的恢復REST
- 使用快取(Cache)的幾種方式,回顧一下~~~快取
- 【方法整理】Oracle 獲取trace跟蹤檔名的幾種常用方式Oracle
- JavaScript獲取li元素的下標JavaScript
- 簡單介紹MySQL索引失效的幾種情況MySql索引
- Asp.net 2.0 Session 丟失的幾種情況ASP.NETSession
- DBMS_BACKUP_RESTORE用於特殊情況下的恢復(轉)REST