Add the ability to manage local stand-alone Appium server instances
In this release, I refined the management of Appium node servers to enable management of local stand-alone instances. I revised the storage of custom Selenium Foundation options to conform with W3C specifications. I also fixed a defect in the strategy used to extract driver capabilities records from node capabilities.
- GridUtility:
- Revise the
getNodeCapabilitiesmethod to return the single object supplied by the node instead of a one-item array. - Add new
getNodeDriverCapsmethod to extract the driver capabilities records contained in the node capabilities object. - Revise the
getPersonalitymethod to accept a Capabilities object and to check "nord:options" for the "personality" value. - Add new
getNordOptionsmethod to extract the "nord:options" capability from Capabilities objects.
- Revise the
- SeleniumGrid:
- Revise the
addNodePersonalitiesmethod to take advantage of new and revised GridUtility methods. - Revise the
shutdownmethod to try theAppiumGridServer.shutdownAppiumWithPM2method for local node servers.
- Revise the
- TargetType:
- Revise the
matchesmethod to get "personality" and "pluginClass" from the "nord:options" capability.
- Revise the
- AbstractAppiumPlugin:
- Revise the
createmethod to add the "appiumWithPM2" option to the node capabilities if PM2 was used to launch Appium. - Extract the core implementation of the
shutdownmethod into a new staticshutdownAppiumWithPM2method. - Add new static
shutdownAppiumWithPM2method to enable GridServer objects created for active local node servers to shut down stand-alone Appium nodes. - Add new static
isAppiumWithPM2method to determine if the specified URL serves an Appium node running with PM2.
- Revise the
- Driver Plugins: Move custom Selenium Foundation options into a new "nord:options" capability.