You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-13Lines changed: 24 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,7 @@
10
10
* With the release of **Selenium Foundation** version _28.2.0_, we now provide support for **Appium** sessions via **Selenium 4 Grid**. The auto-generated configuration connects the **Appium** server to the local grid via a relay node.
11
11
***NOTE**: To properly support **HtmlUnitDriver**, **Appium**, and **Safari**, this release includes new custom slot matcher (Selenium 4) and capabilities matcher (Selenium 3). These matchers are activated via a new setting, which can be easily overridden should the need arise.
12
12
* With the release of **Selenium Foundation** version _28.1.1_, we now provide support for remote **HtmlUnitDriver** sessions with [HtmlUnit Remote](https://github.com/seleniumhq-community/htmlunit-remote). The project unit tests for **Selenium Foundation** have been switched back to running under this "headless" browser.
13
+
* With the release of **Selenium Foundation** version _28.0.0_, we now use **Selenium Manager** (Selenium 4) and **Web Driver Manager** (Selenium 3) to acquire compatible drivers for the browsers targeted by your tests.
13
14
* With the release of **Selenium Foundation** version _26.3.4_, automation of Macintosh native applications via the Mac2 engine of Appium is complete. The latest release of the [local-grid-parent](https://github.com/sbabcoc/local-grid-parent) project (_1.5.0_) builds on the [local grid](docs/LocalGridConfiguration.md#introduction) feature of **Selenium Foundation** to launch grid collections that include Mac2 nodes.
14
15
15
16
#### Table of Contents
@@ -31,6 +32,7 @@
31
32
*[Landing Page Verification and Model-Directed Navigation](#landing-page-verification-and-model-directed-navigation)
@@ -171,6 +174,18 @@ Examples of the sorts of conditions you may want to detect include error pages (
171
174
172
175
**Selenium Foundation** also includes collection classes ([ComponentList](src/main/java/com/nordstrom/automation/selenium/model/ComponentList.java), [ComponentMap](src/main/java/com/nordstrom/automation/selenium/model/ComponentMap.java), [FrameList](src/main/java/com/nordstrom/automation/selenium/model/FrameList.java), [FrameMap](src/main/java/com/nordstrom/automation/selenium/model/FrameMap.java), [ShadowRootList](src/main/java/com/nordstrom/automation/selenium/model/ShadowRootList.java), and [ShadowRootMap](src/main/java/com/nordstrom/automation/selenium/model/ShadowRootMap.java)) that enable you to define collections of components for your page models. For example, you can define a **SearchResultTile** component and include a map of these tiles keyed by product ID in your **SearchResultsPage** class. **Selenium Foundation** collections are lazy-initialized automatically - the composition of the collection is determined when it's instantiated, but each item in the collection is only populated when it's explicitly referenced.
173
176
177
+
### Handling Web Site Variations
178
+
179
+
When modeling a web application, it's common to encounter scenarios where the presentation of a page or component varies from one run to the next. For example:
180
+
181
+
* You're modeling a site that uses responsive layout and have configured separate runs to verify site behavior in each of the supported breakpoint dimensions.
182
+
* The UI/UX team is running an A/B test to evaluate multiple design ideas to determine which one increases engagement and conversion rates.
183
+
* You're maintaining an automation suite through a design transition where a new version of a site-wide component (e.g. - header navigation) has been installed on some pages, but other pages are still using the old version.
184
+
185
+
To enable seamless handling of these sorts of scenarios, **Selenium Foundation** provides a `container resolution` feature that automatically selects the version of a page or component model that corresponds to the current presentation in the browser.
One of the most impactful features of **Selenium Foundation** saves your automation from the dreaded **StaleElementReferenceException** failure. Web element search operations performed within the **Selenium Foundation** framework return enhanced references, which retain all of the parameters needed to re-acquire the reference if it goes stale. Every web element method call is guarded by an automatic recovery feature. If a reference goes stale, **Selenium Foundation** re-acquires the reference and re-issues the web element method call that encountered the exception. Your automation continues on normally, blissfully unaware of the disaster that was averted.
@@ -236,16 +251,12 @@ The hierarchy of evaluation produces the following results:
Whichever browser you choose to run your automation on, you need to make sure to install the latest driver for that browser compatible with your target version of **Selenium WebDriver**, along with a compatible release of the browser itself. We recommend that you install the drivers and browsers on the file search path to avoid the need to provide additional configuration details via scenario-specific means.
254
+
## Automatic Installation of Drivers
242
255
243
-
Here are the official homes for several of the major drivers:
256
+
Since the release of **Selenium Foundation**[28.0.0](https://github.com/sbabcoc/Selenium-Foundation/releases/tag/v28.0.0), we now use **Selenium Manager** (Selenium 4) and **Web Driver Manager** (Selenium 3) to acquire compatible drivers for the browsers targeted by your tests. If the manager is unable to locate or download a required driver, **DriverExecutableNotFoundException** is thrown.
This feature does not include management of Appium [automation engines](docs/ConfiguringProjectSettings.md#appium-automation-engine-support), which must be installed separately.
248
259
249
-
**NOTE**: GhostDriver and ChromeDriver are simple binary installations, but several system configuration changes must be applied for IEDriver to work properly. For details, visit the InternetExplorerDriver project Wiki on GitHub and follow the [Required Configuration](https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration) procedure.
260
+
**NOTE**: This driver acquisition process is bypassed for test classes that implement the **DriverProvider** interface.
250
261
251
262
> Written with [StackEdit](https://stackedit.io/).
0 commit comments