Label Locator Strategies
In Automation, a feature lets the user define their own label strategy to identify web elements. This is designed to help Automation recognize a custom field labeling schema on a web page. This is useful for testing generic websites, and custom Salesforce features such as Lightning Flow and custom Communities.
Label Locator Strategies are stored as java files. Inside the file, lists of XPaths can be defined that tell Provar how to identify the label elements on a page and how to identify the control (or input) elements on the page.
Strategy files include the following information:
- title: from the @LabelLocatorStrategy annotation
- priority: from the @LabelLocatorStrategy annotation, defaulting to Integer.MAX_VALUE
- labelLocators: list of StrategyLocator for the annotations labelLocators
- controlLocators: list of StrategyLocator for the annotations controlLocators list
In turn, the StrategyLocator has the following information:
- name
- findByType: always “xpath”
- findByValue: the XPath value (relative XPath: it should always be relative to the same node for which we are defining the label Strategy)
- preceding: if a label is preceding the control default false
There can be multiple strategy files, each for different pages of the application. These files are kept in /src/labellocators and the compiled classes are in /bin/labellocators:
Once the strategy file is in place and we map the corresponding web page, the following information is shown in Test Builder when mapped as a Page Object:
- Matching strategy files in Field Locator type dropdown in By Label section in the following format {locatorValue} ({strategy title}), e.g., ‘Shipping Method (Lightning Flow)’
- Locator Value
- Label Locator name and XPath, with the name in a green bubble
- Control Locator name and XPath, with the name in a red bubble
Also, in Chrome browser, the corresponding field label gets highlighted in green and the control locator in red, as below:
In case of multiple matching strategy files, the files will be displayed in Test Builder in order of priority:
Once we add the locator in a page object, it gets stored in the following format:
@FindByLabel(label = “Shipping Method”, controlLocator = “input2”, labelLocator = “label2”, strategy = LightningFlow.class)
Where strategy identifies the Label Locator Strategy to be used, labelLocator gives the label XPath, and controlLocator gives the name of the control XPath to be used.
For example:
Note that when changes are made to a strategy file, Automation’s Test Plug-ins should be restarted by clicking the Stop icon at the top of the Test Plug-ins view and then the Start icon. In addition, when any new strategy file is added, Automation needs to be refreshed and recompiled (from the top menu in Automation, click the Tools dropdown and then select Refresh and Recompile).
Once you have defined a label strategy in Automation, it can be used across and outside the project.
- Provar Automation
- System Requirements
- Browser and Driver Recommendations
- Installing Provar Automation
- Updating Provar Automation
- Licensing Provar
- Granting Org Permissions to Provar Automation
- Optimizing Org and Connection Metadata Processing in Provar
- Using Provar Automation
- Understanding Provar’s Use of AI Service for Test Automation
- Provar Automation
- Creating a New Test Project
- Import Test Project from a File
- Import Test Project from a Remote Repository
- Import Test Project from Local Repository
- Commit a Local Test Project to Source Control
- API Testing
- Behavior-Driven Development
- Consolidating Multiple Test Execution Reports
- Creating Test Cases
- Custom Table Mapping
- Functions
- Debugging Tests
- Defining a Namespace Prefix on a Connection
- Defining Proxy Settings
- Environment Management
- Exporting Test Cases into a PDF
- Exporting Test Projects
- Japanese Language Support
- Override Auto-Retry for Test Step
- Customize Browser Driver Location
- Mapping and Executing the Lightning Article Editor in Provar
- Managing Test Steps
- Namespace Org Testing
- NitroX
- Provar Test Builder
- ProvarDX
- Refresh and Recompile
- Reintroduction of CLI License Check
- Reload Org Cache
- Reporting
- Running Tests
- Searching Provar with Find Usages
- Secrets Management and Encryption
- Setup and Teardown Test Cases
- Tags and Service Level Agreements (SLAs)
- Test Cycles
- Test Data Generation
- Test Plans
- Testing Browser Options
- Tooltip Testing
- Using the Test Palette
- Using Custom APIs
- Callable Tests
- Data-Driven Testing
- Page Objects
- Block Locator Strategies
- Introduction to XPaths
- Creating an XPath
- JavaScript Locator Support
- Label Locator Strategies
- Maintaining Page Objects
- Mapping Non-Salesforce fields
- Page Object Operations
- ProvarX™
- Refresh and Reselect Field Locators in Test Builder
- Using Java Method Annotations for Custom Objects
- Applications Testing
- Provar Manager
- How to Use Provar Manager
- Provar Manager Setup
- Provar Manager Integrations
- Release Management
- Test Management
- Test Operations
- Provar Manager and Provar Automation
- Setting Up a Connection to Provar Manager
- Object Mapping Between Automation and Manager
- How to Upload Test Plans, Test Plan Folders, Test Plan Instances, and Test Cases
- Provar Manager Filters
- Uploading Callable Test Cases in Provar Manager
- Uploading Test Steps in Provar Manager
- How to Know if a File in Automation is Linked in Test Manager
- Test Execution Reporting
- Metadata Coverage with Manager
- Provar Grid
- DevOps
- Introduction to Provar DevOps
- Introduction to Test Scheduling
- Apache Ant
- Configuration for Sending Emails via the Automation Command Line Interface
- Continuous Integration
- AutoRABIT Salesforce DevOps in Provar Test
- Azure DevOps
- Running a Provar CI Task in Azure DevOps Pipelines
- Configuring the Automation secrets password in Microsoft Azure Pipelines
- Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Parallel Execution in Microsoft Azure Pipelines using Targets
- Parallel execution in Microsoft Azure Pipelines using Test Plans
- Bitbucket Pipelines
- CircleCI
- Copado
- Docker
- Flosum
- Gearset
- GitHub Actions
- Integrating GitHub Actions CI to Run Automation CI Task
- Remote Trigger in GitHub Actions
- Parameterization using Environment Variables in GitHub Actions
- Parallel Execution in GitHub Actions using Multiple build.xml Files
- Parallel Execution in GitHub Actions using Targets
- Parallel Execution in GitHub Actions using Test Plan
- Parallel Execution in GitHub Actions using Job Matrix
- GitLab Continuous Integration
- Travis CI
- Jenkins
- Execution Environment Security Configuration
- Provar Jenkins Plugin
- Parallel Execution
- Running Provar on Linux
- Reporting
- Salesforce DX
- Git
- Version Control
- Salesforce Testing
- Recommended Practices
- Salesforce Connection Best Practices
- Improve Your Metadata Performance
- Java 21 Upgrade
- Testing Best Practices
- Automation Planning
- Supported Testing Phases
- Provar Naming Standards
- Test Case Design
- Create records via API
- Avoid using static values
- Abort Unused Test Sessions/Runs
- Avoid Metadata performance issues
- Increase auto-retry waits for steps using a global variable
- Create different page objects for different pages
- The Best Ways to Change Callable Test Case Locations
- Working with the .testProject file and .secrets file
- Best practices for the .provarCaches folder
- Best practices for .pageObject files
- Troubleshooting
- How to Use Keytool Command for Importing Certificates
- Installing Provar After Upgrading to macOS Catalina
- Browsers
- Configurations and Permissions
- Connections
- DevOps
- Error Messages
- Provar Manager 3.0 Install Error Resolution
- Provar Manager Test Case Upload Resolution
- Administrator has Blocked Access to Client
- JavascriptException: Javascript Error
- macOS Big Sur Upgrade
- Resolving Failed to Create ChromeDriver Error
- Resolving Jenkins License Missing Error
- Resolving Metadata Timeout Errors
- Test Execution Fails – Firefox Not Installed
- Selenium 4 Upgrade
- Licensing, Installation and Firewalls
- Memory
- Test Builder and Test Cases
- Release Notes