@redhat-developer/locators
v1.24.0
Published
Pluggable Page Objects locators for an ExTester framework.
Readme
What it is
The page objects in @redhat-developer/page-objects never hard-code selectors. This package supplies them: a complete locator set for VS Code 1.37.0, plus one diff file for every later VS Code version that changed part of the UI, up to the newest supported release. At startup the page-objects LocatorLoader takes the base set and merges every diff up to the VS Code version under test, so the same page object code works across all supported versions.
Installation
You normally do not install this package yourself: vscode-extension-tester depends on it and loads it automatically. Install it directly only when you use the page objects without the ExTester runner:
npm install --save-dev @redhat-developer/locators @redhat-developer/page-objects selenium-webdriverPeer dependencies: @redhat-developer/page-objects >= 1.0.0 and selenium-webdriver ^4.48.0.
Usage
The package exports a single function, getLocatorsPath(), which returns the folder that contains the compiled locator files. Pass it to the page-objects loader:
import { getLocatorsPath } from "@redhat-developer/locators";
import { LocatorLoader } from "@redhat-developer/page-objects";
// Locators for VS Code 1.134.0: the 1.37.0 base set with every later diff merged in
const locators = new LocatorLoader("1.134.0", "1.37.0", getLocatorsPath()).loadLocators();To activate the page objects with these locators, call initPageObjects from @redhat-developer/page-objects; see that package's README.
Adding or overriding locators
- Your own extension's UI: do not edit this package. Write a locator contribution file and pass it to
extestwith--custom_page_objects, as described in the Custom Page Objects guide. - A VS Code update broke a built-in locator: add or update the diff for that version in
lib/<version>.tsand open a pull request. The Contribution Guide explains how to build the project and run the test suite.
Feedback
- Bugs and feature requests: open an issue
- Questions: GitHub Discussions
