To create reliable and practical tests, Appium users must identify the best possible locators for the elements they wish to interact with. Several factors make a locator effective, including stability, performance, and accuracy. This article will discuss each aspect in detail and provide examples of effective locators in Appium testing.
By the end of this article, readers should have a solid understanding of how to identify effective locators in Appium testing. Let's start with the basics: Locators and their significance in Appium mobile testing.
What are Locators?
Mobile app testing is essential to the success of any mobile app. There are many factors to consider when testing mobile apps, such as the devices to be used, the operating systems, and the different screen sizes. Another critical factor is the locators. Locators are the elements that help identify an object on the screen so that it can be interacted with. For example, in the case of an app with a map, a locator could be a pin icon or a location marker.
Read Next: Top Mobile App Testing Practices
An open-source framework for test automation, Appium works with both native and hybrid mobile apps. It utilizes the WebDriver protocol to drive apps on iOS, Android, and Windows. A locator is an address that identifies a UI element within the app.
To test an app using Appium, we need to be able to identify the locators for the UI elements within that app. Appium uses a unique token to identify each locator and store the locators in a persistent store.
Identify Effective Locators in Appium Testing
The first step to effective locator identification is understanding what makes a locator effective. There are three primary factors: stability, performance, and accuracy. Below, each will be covered in more detail. It is important to remember that not all locators need to be effective in all three ways – often, a locator can be effective in one or two ways but not all three.
- Stability: A locator must be stable to be effective. A locator should not change over time, or the tester will not be able to identify the locator accurately.
- Performance: A locator should be able to perform its function quickly. Locators that are unable to identify a target should not be used.
- Accuracy: A locator should be accurate to be effective. A locator should not identify the wrong target. This includes both locators that are specific to a target and locators that are not specific to a target.
Locators In Appium Testing
The ID is the easiest method to use when looking for elements. Each element has been given a unique ID that makes it easier to recognize and work with. Native element identifiers for Android and iOS are available in Appium. For iOS, the name is used as the element identifier, while resource-id is used for Android.
Suggested Read: IOS and Android App Development Cost
2. Class Name
Since many elements share the same class name, searching for detail by class name is a general method that does not always result in finding the unique piece. Therefore, it is necessary to use a combination of multiple attributes, such as text and the class name, to identify the element. Class Name is displayed for iOS as the XCUI element's full name, which starts with XCUIElementType. For instance, UIAButton and UIARadioButton.
This locator strategy examines the app's XML structure to pinpoint the element concerning other elements. The original intent of the XPath was to make it possible to search for particular UI elements by navigating through XML data. It is important to note that selectors in XPath are not platform-independent.
This tactic should be used only when a UI Element has no assigned Accessibility Id, Id, or Name. XPath has issues with stability and performance, but it is also very "brittle" when switching between platforms and device manufacturers.
Recommended Read: Get XPath In Chrome
4. Accessibility ID
It is the locator strategy of choice, particularly when automating test cases for Android and iOS. The Accessibility ID can be set explicitly by developers when developing. Because Accessibility ID can be applied to cross-platform automation, the code is made reusable.
The name of the user interface element is the accessibility ID by default for iOS. The accessibility value for Android is the same as the content-desc attribute's value.
5. Android UI Automator
This locator approach is unique to the Android Platform. The UiSelector API must be familiar with using this, and it is only available for Android, so it is rarely used to locate element locators in Appium testing. It performs a little bit better than XPath.
Read Next: Steps to Use API Testing Tools
6. Android View Tag (Espresso Only)
This locator technique is exclusive to the Android Platform. It uses the view tag of an element to find it. The view tag is the 'primary container ' for a component. It comprises the element's Class, ID, and Accessibility Tag.
The ID is assigned when the piece is created, the Class is given when the part is defined, and the Accessibility Tag is set when the element is accessible. The view tag can be found in the Android Manifest File and the XML of an Android App.
7. iOS UI Automation
This locator is unique to the iOS operating system. It makes it possible for QAs or developers to locate elements when automating tests for iOS apps by using Apple's Instruments framework. Compared to XPath, it works better.
Perform Effective Software Testing with AppSierra
Be it for quality assurance, bug detection, or finding locators in Appium testing, AppSierra provides tools to help testers automate their testing process. With AppSierra, testers can achieve better quality control for their apps and save time by automating their testing process.
With over 15+ years of industry experience, AppSierra is a leading provider of software testing services in the USA. Have a look at the array of services that AppSierra offers and see how it can help you:
1. Quality Engineering
- Agile Software Testing
- Compatibility Testing
- Functional Testing
- Regression Testing
- Performance Testing
- Automated Testing
- Usability Testing
- Localization Testing
2. Digital Assurance
- QA Consulting
- Web App Testing
- Mobile App Testing
- Microservices Testing
- Internet Of Things (IoT) Testing
- Big Data Testing
- Blockchain Testing
- CRM Testing
A few clicks are all it takes to get started with AppSierra's exclusive range of tools and services. Contact today and experience the difference!
Test scripts must interact with many different elements when performing automated app testing. Therefore, finding the necessary components for effective testing is essential. Consequently, testing teams must know all available locator strategies in Appium to identify web elements precisely.
Hopefully, you're beginning to understand which locator to use and when. If it isn't immediately apparent, don't worry. It will become more intuitive as you build more Appium scripts and continue to review them.
Frequently Asked Questions (FAQs)
Q1. Which of the subsequent locator techniques is not supported by Appium?
According to Stack Overflow, this session issue with Appium is not supported by the java - Locator Strategy 'CSS selector.' Launch collaboration and knowledge sharing within your team with Stack Overflow for Teams.
Q2. Where can I find Appium Locators?
Appium makes using the locator to find an element simple. The "Search for Elements" icon will display a list of locators that can be used with Selenium. The locator strategy can be an "ID," "XPath," or "Name," and the selector value must be entered following the locator chosen.
Q3. How can you recognize XPath locators in Appium Testing?
- Use the built-in Developer Tools in Chrome to determine an element's XPath.
- In Chrome, select Inspect by right-clicking the web element.
- It will open the Developer tool with the HTML code for the highlighted element.
- Right-click the highlighted HTML to select "Copy XPath."
- To locate this Element in Chrome later, use the copied Xpath.