SlideShare a Scribd company logo
1 of 14
iOS UI Automation
using Xcode
GETTING STARTED USING APPLE’S NEW FRAMEWORK
What we’ll be going over
 Introduction
 Best tools for UI testing iOS applications
 Introduction into the framework
 Demo of UI automation
 CI/CD
Konnor Willison @konnorwillison
 Worked at Bluehost, Overstock, Vivint.
 Currently at Demandware/Salesforce as a Software Developer in Test
 We’re hiring!
 Quality Assurance Engineer II
 Data Engineer Team Lead
 Sr. Infrastructure Engineer
 Principal Engineer-Platform Operations Training
 Senior Java Developer
 Work mostly in Java
 Love anything automation
 Was tasked with finding a solution to automate iOS UI testing
What are some ways to UI test iOS
applications?
 KIF – Keep it Functional
 Calabash
 Appium
 Apple’s UIAutomation (currently dropped)
 Xcode 7+ UI Testing
Testing with Xcode
 UI Testing
 Interact with UI Elements
 Verify UI properties and states
 UI Recording
 Rapidly set up projects
 Uses XCTest and Accessibility
Xcode UI Testing
 Requirements
 New APIs
 Recording
Requirements
 iOS 9+
 OS X 10.11+
 iOS devices need to be enabled for development
 Connected to trusted host running Xcode
 OS X must grant permission to Xcode Helper
Main APIs to Interact with
 XCUIApplication
 XCUIElement
 XCUIElementQuery
Interacting with the app
XCUIApplication
 proxy for tested application
 independent of app
XCUIElement
 proxy object for user interface elements
 types (buttons, cells, window)
 identifiers from accessibility, label, title (how to find element, combine
type and identify)
 for hierarchy in application
 elements must be unique (resolve to single instance)
 exception (exists property)
 where simulation of UI exists
XCUIElementQuery
 specify elements
 only get accessible elements
 number of matches using count
 elementAtIndex
 filter by type, label
 Find element by subscripting – table.staticTexts[“Order Now”]
 Index – table.staticTexts.elementAtIndex(0)
 Unique – app.navigationBars.element
 Evaluated on demand
Recording
 Add reliability with minimal effort
 Use recording to find the elements
 Event validation with XCTAssert
Demo

More Related Content

What's hot

Introduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing ToolsIntroduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing Toolsi_am_craig
 
Intro to Windows Azure Mobile Services with iOS
Intro to Windows Azure Mobile Services with iOSIntro to Windows Azure Mobile Services with iOS
Intro to Windows Azure Mobile Services with iOSAndri Yadi
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile AppsSauce Labs
 
WinAppDriver - Windows Store Apps Test Automation
WinAppDriver - Windows Store Apps Test AutomationWinAppDriver - Windows Store Apps Test Automation
WinAppDriver - Windows Store Apps Test AutomationJeremy Kao
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentumesh patil
 
Phonegap android
Phonegap androidPhonegap android
Phonegap androidumesh patil
 
React native introduction
React native introductionReact native introduction
React native introductionInnerFood
 
Monkey talk
Monkey talkMonkey talk
Monkey talkConfiz
 
Apple WWDC Mobility Review 2014
Apple WWDC Mobility Review 2014Apple WWDC Mobility Review 2014
Apple WWDC Mobility Review 2014Manesh Lad
 
Creation of simple application using - step by step
Creation of simple application using - step by stepCreation of simple application using - step by step
Creation of simple application using - step by steppriya Nithya
 
UI Testing with Earl Grey
UI Testing with Earl GreyUI Testing with Earl Grey
UI Testing with Earl GreyShyam Bhat
 
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...Edureka!
 
Automation Anywhere IQ Bots | Edureka
Automation Anywhere IQ Bots | EdurekaAutomation Anywhere IQ Bots | Edureka
Automation Anywhere IQ Bots | EdurekaEdureka!
 
01 04 - android set up and creating an android project
01  04 - android set up and creating an android project01  04 - android set up and creating an android project
01 04 - android set up and creating an android projectSiva Kumar reddy Vasipally
 
Wroc.py #32: Microservices in flask
Wroc.py #32: Microservices in flaskWroc.py #32: Microservices in flask
Wroc.py #32: Microservices in flaskKrzysztof Żuraw
 

What's hot (20)

Introduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing ToolsIntroduction to Mobile-UI Automated Testing Tools
Introduction to Mobile-UI Automated Testing Tools
 
Intro to Windows Azure Mobile Services with iOS
Intro to Windows Azure Mobile Services with iOSIntro to Windows Azure Mobile Services with iOS
Intro to Windows Azure Mobile Services with iOS
 
Appium
AppiumAppium
Appium
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps
 
WinAppDriver - Windows Store Apps Test Automation
WinAppDriver - Windows Store Apps Test AutomationWinAppDriver - Windows Store Apps Test Automation
WinAppDriver - Windows Store Apps Test Automation
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
PyUIA 0.3
PyUIA 0.3PyUIA 0.3
PyUIA 0.3
 
Monkey talk
Monkey talkMonkey talk
Monkey talk
 
Phonegap android
Phonegap androidPhonegap android
Phonegap android
 
React native introduction
React native introductionReact native introduction
React native introduction
 
Monkey talk
Monkey talkMonkey talk
Monkey talk
 
React Native
React NativeReact Native
React Native
 
Apple WWDC Mobility Review 2014
Apple WWDC Mobility Review 2014Apple WWDC Mobility Review 2014
Apple WWDC Mobility Review 2014
 
Creation of simple application using - step by step
Creation of simple application using - step by stepCreation of simple application using - step by step
Creation of simple application using - step by step
 
UI Testing with Earl Grey
UI Testing with Earl GreyUI Testing with Earl Grey
UI Testing with Earl Grey
 
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
 
Automation Anywhere IQ Bots | Edureka
Automation Anywhere IQ Bots | EdurekaAutomation Anywhere IQ Bots | Edureka
Automation Anywhere IQ Bots | Edureka
 
01 04 - android set up and creating an android project
01  04 - android set up and creating an android project01  04 - android set up and creating an android project
01 04 - android set up and creating an android project
 
Wroc.py #32: Microservices in flask
Wroc.py #32: Microservices in flaskWroc.py #32: Microservices in flask
Wroc.py #32: Microservices in flask
 
Ios development
Ios developmentIos development
Ios development
 

Viewers also liked

Final presentation slides
Final presentation slidesFinal presentation slides
Final presentation slideselliso61
 
Prezentacja szczawnica j_sikora
Prezentacja szczawnica j_sikoraPrezentacja szczawnica j_sikora
Prezentacja szczawnica j_sikoraJustyna Sikora
 
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIASETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIAIAEME Publication
 
accenture-increasing-return-talent-development-canadian-companies
accenture-increasing-return-talent-development-canadian-companiesaccenture-increasing-return-talent-development-canadian-companies
accenture-increasing-return-talent-development-canadian-companiesNeil Hunter
 
Las cuatro libertades de stamall
Las cuatro libertades de stamallLas cuatro libertades de stamall
Las cuatro libertades de stamallAlexis Ante
 
Generalidades del bautismo aldo f acosta 2015
Generalidades del bautismo aldo f acosta 2015Generalidades del bautismo aldo f acosta 2015
Generalidades del bautismo aldo f acosta 2015Aldo Fernando Acosta M
 
Lemken zirkon 10-450 parts katalog
Lemken zirkon 10-450 parts katalogLemken zirkon 10-450 parts katalog
Lemken zirkon 10-450 parts katalogPartCatalogs Net
 
María teresa maldonado sada actividad 3 gestion del conocimiento
María teresa maldonado sada actividad 3 gestion del conocimientoMaría teresa maldonado sada actividad 3 gestion del conocimiento
María teresa maldonado sada actividad 3 gestion del conocimientoMay Sada
 
Lemken system-kompaktor k 450 parts catalog
Lemken system-kompaktor k 450 parts catalogLemken system-kompaktor k 450 parts catalog
Lemken system-kompaktor k 450 parts catalogPartCatalogs Net
 
Lemken zirkon 7/400 parts catalog
Lemken zirkon 7/400 parts catalogLemken zirkon 7/400 parts catalog
Lemken zirkon 7/400 parts catalogPartCatalogs Net
 
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university.
Lec 8 b  - sedimentary rocks - Geology for 1th year  | Zagazig university. Lec 8 b  - sedimentary rocks - Geology for 1th year  | Zagazig university.
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university. Ahmed Alkawaliny
 
Varga Csaba - A társadalom felébredése az agóniából
Varga Csaba - A társadalom felébredése az agóniábólVarga Csaba - A társadalom felébredése az agóniából
Varga Csaba - A társadalom felébredése az agóniábólVarga Csaba
 
Quality Attributes Workshop
Quality Attributes WorkshopQuality Attributes Workshop
Quality Attributes WorkshopCS, NcState
 
Presentación 1 valor posicional de los números hasta el 9999
Presentación 1 valor posicional de los números hasta el 9999Presentación 1 valor posicional de los números hasta el 9999
Presentación 1 valor posicional de los números hasta el 9999tatyga
 

Viewers also liked (20)

Trabajo
TrabajoTrabajo
Trabajo
 
Final presentation slides
Final presentation slidesFinal presentation slides
Final presentation slides
 
Prezentacja szczawnica j_sikora
Prezentacja szczawnica j_sikoraPrezentacja szczawnica j_sikora
Prezentacja szczawnica j_sikora
 
Magazine carletti
Magazine carlettiMagazine carletti
Magazine carletti
 
Yankee Hat Minerals
Yankee Hat MineralsYankee Hat Minerals
Yankee Hat Minerals
 
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIASETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
 
Australia zoo
Australia zooAustralia zoo
Australia zoo
 
accenture-increasing-return-talent-development-canadian-companies
accenture-increasing-return-talent-development-canadian-companiesaccenture-increasing-return-talent-development-canadian-companies
accenture-increasing-return-talent-development-canadian-companies
 
Las cuatro libertades de stamall
Las cuatro libertades de stamallLas cuatro libertades de stamall
Las cuatro libertades de stamall
 
Generalidades del bautismo aldo f acosta 2015
Generalidades del bautismo aldo f acosta 2015Generalidades del bautismo aldo f acosta 2015
Generalidades del bautismo aldo f acosta 2015
 
Lemken zirkon 10-450 parts katalog
Lemken zirkon 10-450 parts katalogLemken zirkon 10-450 parts katalog
Lemken zirkon 10-450 parts katalog
 
María teresa maldonado sada actividad 3 gestion del conocimiento
María teresa maldonado sada actividad 3 gestion del conocimientoMaría teresa maldonado sada actividad 3 gestion del conocimiento
María teresa maldonado sada actividad 3 gestion del conocimiento
 
Lemken system-kompaktor k 450 parts catalog
Lemken system-kompaktor k 450 parts catalogLemken system-kompaktor k 450 parts catalog
Lemken system-kompaktor k 450 parts catalog
 
Lemken zirkon 7/400 parts catalog
Lemken zirkon 7/400 parts catalogLemken zirkon 7/400 parts catalog
Lemken zirkon 7/400 parts catalog
 
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university.
Lec 8 b  - sedimentary rocks - Geology for 1th year  | Zagazig university. Lec 8 b  - sedimentary rocks - Geology for 1th year  | Zagazig university.
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university.
 
Varga Csaba - A társadalom felébredése az agóniából
Varga Csaba - A társadalom felébredése az agóniábólVarga Csaba - A társadalom felébredése az agóniából
Varga Csaba - A társadalom felébredése az agóniából
 
Quality Attributes Workshop
Quality Attributes WorkshopQuality Attributes Workshop
Quality Attributes Workshop
 
Presentación 1 valor posicional de los números hasta el 9999
Presentación 1 valor posicional de los números hasta el 9999Presentación 1 valor posicional de los números hasta el 9999
Presentación 1 valor posicional de los números hasta el 9999
 
Meeting
MeetingMeeting
Meeting
 
Surgery in Bleeding Diathesis
Surgery in Bleeding DiathesisSurgery in Bleeding Diathesis
Surgery in Bleeding Diathesis
 

Similar to open-west

XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodepCloudy
 
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfUnderstanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfpCloudy
 
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn HiệpTech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn HiệpNexus FrontierTech
 
Xcode 7 UI Testing - Xcake Dublin, October 2015
Xcode 7 UI Testing - Xcake Dublin, October 2015Xcode 7 UI Testing - Xcake Dublin, October 2015
Xcode 7 UI Testing - Xcake Dublin, October 2015roland99
 
iOS Developer Interview Questions
iOS Developer Interview QuestionsiOS Developer Interview Questions
iOS Developer Interview QuestionsClark Davidson
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI TestingJouni Miettunen
 
I os 101:basic training rajan
I os 101:basic training   rajanI os 101:basic training   rajan
I os 101:basic training rajanPrawesh Shrestha
 
WhatIsAppium.pptx
WhatIsAppium.pptxWhatIsAppium.pptx
WhatIsAppium.pptxquanot1
 
2012 mobile testingsummit-moet
2012 mobile testingsummit-moet2012 mobile testingsummit-moet
2012 mobile testingsummit-moetEing Ong
 
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieDavid O'Dowd
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
 
Appium: the Superhero of Mobile testing
Appium: the Superhero of Mobile testingAppium: the Superhero of Mobile testing
Appium: the Superhero of Mobile testingInfotek Solutions
 
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015Burcu Geneci
 
2012 star west-t10
2012 star west-t102012 star west-t10
2012 star west-t10Eing Ong
 
echo-o & iPhone App Dev - BarCamp Saigon 1
echo-o & iPhone App Dev - BarCamp Saigon 1echo-o & iPhone App Dev - BarCamp Saigon 1
echo-o & iPhone App Dev - BarCamp Saigon 1huyzing
 

Similar to open-west (20)

XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with Xcode
 
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfUnderstanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
 
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn HiệpTech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
 
Xcode 7 UI Testing - Xcake Dublin, October 2015
Xcode 7 UI Testing - Xcake Dublin, October 2015Xcode 7 UI Testing - Xcake Dublin, October 2015
Xcode 7 UI Testing - Xcake Dublin, October 2015
 
iOS Developer Interview Questions
iOS Developer Interview QuestionsiOS Developer Interview Questions
iOS Developer Interview Questions
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI Testing
 
I os 101:basic training rajan
I os 101:basic training   rajanI os 101:basic training   rajan
I os 101:basic training rajan
 
WhatIsAppium.pptx
WhatIsAppium.pptxWhatIsAppium.pptx
WhatIsAppium.pptx
 
2012 mobile testingsummit-moet
2012 mobile testingsummit-moet2012 mobile testingsummit-moet
2012 mobile testingsummit-moet
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ie
 
Automation strategies for agile testing Gaurav bansal
Automation strategies for agile testing  Gaurav bansalAutomation strategies for agile testing  Gaurav bansal
Automation strategies for agile testing Gaurav bansal
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
Appium: the Superhero of Mobile testing
Appium: the Superhero of Mobile testingAppium: the Superhero of Mobile testing
Appium: the Superhero of Mobile testing
 
Appium
AppiumAppium
Appium
 
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
 
2012 star west-t10
2012 star west-t102012 star west-t10
2012 star west-t10
 
Appium
AppiumAppium
Appium
 
Appium
AppiumAppium
Appium
 
echo-o & iPhone App Dev - BarCamp Saigon 1
echo-o & iPhone App Dev - BarCamp Saigon 1echo-o & iPhone App Dev - BarCamp Saigon 1
echo-o & iPhone App Dev - BarCamp Saigon 1
 

open-west

  • 1. iOS UI Automation using Xcode GETTING STARTED USING APPLE’S NEW FRAMEWORK
  • 2. What we’ll be going over  Introduction  Best tools for UI testing iOS applications  Introduction into the framework  Demo of UI automation  CI/CD
  • 3. Konnor Willison @konnorwillison  Worked at Bluehost, Overstock, Vivint.  Currently at Demandware/Salesforce as a Software Developer in Test  We’re hiring!  Quality Assurance Engineer II  Data Engineer Team Lead  Sr. Infrastructure Engineer  Principal Engineer-Platform Operations Training  Senior Java Developer  Work mostly in Java  Love anything automation  Was tasked with finding a solution to automate iOS UI testing
  • 4. What are some ways to UI test iOS applications?  KIF – Keep it Functional  Calabash  Appium  Apple’s UIAutomation (currently dropped)  Xcode 7+ UI Testing
  • 5. Testing with Xcode  UI Testing  Interact with UI Elements  Verify UI properties and states  UI Recording  Rapidly set up projects  Uses XCTest and Accessibility
  • 6. Xcode UI Testing  Requirements  New APIs  Recording
  • 7. Requirements  iOS 9+  OS X 10.11+  iOS devices need to be enabled for development  Connected to trusted host running Xcode  OS X must grant permission to Xcode Helper
  • 8. Main APIs to Interact with  XCUIApplication  XCUIElement  XCUIElementQuery
  • 10. XCUIApplication  proxy for tested application  independent of app
  • 11. XCUIElement  proxy object for user interface elements  types (buttons, cells, window)  identifiers from accessibility, label, title (how to find element, combine type and identify)  for hierarchy in application  elements must be unique (resolve to single instance)  exception (exists property)  where simulation of UI exists
  • 12. XCUIElementQuery  specify elements  only get accessible elements  number of matches using count  elementAtIndex  filter by type, label  Find element by subscripting – table.staticTexts[“Order Now”]  Index – table.staticTexts.elementAtIndex(0)  Unique – app.navigationBars.element  Evaluated on demand
  • 13. Recording  Add reliability with minimal effort  Use recording to find the elements  Event validation with XCTAssert
  • 14. Demo

Editor's Notes

  1. KIF: integration framework, directly in xcode project, written in objective c Calabash: uses cucumber, screenshots, able to test in the cloud, not integrated with xcode Appium: uses webdriver protocol Apple’s uiautomation: javascript Xcode UI testing: integrated with xcode, recording, can use xcodebuild, screenshots, quickstart
  2. Xctest is xcode’s testing framework test methods assertions integrated with xcode debugging easy continuous integration supports swift and obj c Accessibility how disabled people can interact with iOS semantic data for guiding through the UI provides apis to fine tune data that is present this way can interact with environment the same way the user does improve accessibility data, impacts testing, easier to write tests, more reliable, better for disabled users not accessible: custom view subclasses, layers, sprites, and other graphics
  3. Don’t go over these Three new apis XCUIApplication() proxy for tested application independent of app XCUIElement() proxy object for user interface elements types (buttons, cells, window) identifiers from accessibility, label, title (how to find element, combine type and identify) for heirarchy in application elements must be unique (resolve to single instance) exception (exists property) where simulation of UI exists XCUIElementQuery() specify elements only get accessible elements number of matches using count elementAtIndex filter by type, label