如果我正在嘗試編寫不依賴於標籤或其他特定於值的元素的通用測試,我如何獲取該信息?就像我要點擊桌面單元並稍後需要一些信息。喜歡識別哪個單元被點擊。我如何使用XCUIElement從中獲取標籤?從XCUIElement中提取信息
2
A
回答
1
您可以從XCUIElement
中提取的信息僅限於XCUIElementAttributes
protocol中的信息。其中最值得注意的是identifier
,value
和title
。
您可以在生產代碼中通過-accessibilityIdentifier
設置identifier
。 value
屬性可以從幾個不同的路徑設置,但它通常是控件的活動狀態。例如,選取器的選定元素。
您可以嘗試使用輔助功能檢查器查看元素上已設置的內容,然後使用查詢來查找該元素。
0
喬一直在正確的答案,但他忽略瞭如何實際得到他指定的屬性的值。
讓我們假設我想那會打印我的應用程序的導航欄的字符串
我所做的就是我創建了一個XCUIElement我的導航欄:
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];
然後我在創建navBarTitle對象後放置一個斷點,並使用調試控制檯打印出navBarTitle對象的詳細信息:
您在打印看出來調試控制檯中的有一個名爲標識一個關鍵。
爲了提取從該對象該字符串,我使用以下方法創建一個NSString對象:
NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];
我用XCUIElement navBarTitle,然後用於該方法valueForKey。 valueForKey提取密鑰標識符的字符串值。
您可以瞭解這種方法在這裏讀了起來: NSKeyValueCoding
valueForKey的關鍵是解開這個問題的答案....雙關語意:)
0
您可以提取一些國家,例如, accessibilityIdentifier,isHitable,value或其他,但不幸的是,你不能設置/更改任何這些。所以顯然你無法檢測到XCUIElement是否已被竊聽。這在UI測試中是一個很大的限制。
相關問題
- 1. 從mongoDB中提取信息
- 2. 從xml中提取信息
- 3. 從dictionary.description中提取信息?
- 4. 從XML中提取信息
- 5. 從api中提取信息
- 6. 從array_count_values中提取信息
- 7. 從DTD中提取信息
- 8. 從$中提取信息?
- 9. 從xml中提取信息
- 10. 從html提取信息greasemonkey
- 11. pyPdf從IndirectObject提取信息
- 12. 從網站提取信息
- 13. 從R中的Shapiro.test()中提取信息
- 14. 提取信息
- 15. 提取信息
- 16. 提取信息
- 17. 提取信息
- 18. 提取信息
- 19. 從SSIS XML文件中提取信息?
- 20. 從HTML文件中提取信息
- 21. 從文本中提取特定信息
- 22. 從R列表中提取信息
- 23. 從MapView中提取交通信息
- 24. ColdFusion:從.msg文件中提取信息
- 25. 從Global.ascx文件中提取信息
- 26. 從3-D圖中提取信息
- 27. 從證書中提取信息
- 28. 從URL中提取HTML信息
- 29. 使用Python從shapefile中提取信息
- 30. 從Jira中提取svn信息
由於某種原因,我永遠無法獲得實際的價值。我一直在嘗試這樣的事情: app.tables.elementBoundByIndex(0).cells.elementBoundByIndex(3).staticTexts。elementBoundByIndex(1) 永遠不會得到實際的價值。我一直得到: 可選() 並將其解包爲一個字符串給我一個空字符串 – ajc6432
原來我最終沒有爲UI層次結構正確鏈接XCUIElementQueries。順便說一句,你的網站真的很有幫助。感謝您運行它。在此之前,我一直堅持這一點。 – ajc6432