Package org.openqa.selenium.cli
package org.openqa.selenium.cli
Mechanisms to configure and run selenium via the command line. There are two key classes
CliCommand
and HasRoles
.
Ultimately, these are used to build a Config
instance,
for which there are strongly-typed role-specific classes that use a Config
, such as
DockerOptions
.
Assuming your CliCommand
extends TemplateGridCommand
,
the process for building the set of flags to use is:
- The default flags are added (these are
HelpFlags
andConfigFlags
ServiceLoader
is used to find all implementations ofHasRoles
whereHasRoles.getRoles()
is contained withinCliCommand.getConfigurableRoles()
.- Finally all flags returned by
CliCommand.getFlagObjects()
are added.
The flags are then used by JCommander to parse the command arguments. Once that's done, the
raw flags are converted to a Config
by combining all of
the flag objects with system properties and environment variables. This implies that each flag
object has annotated each field with ConfigValue
.
Ultimately, this means that flag objects have all (most?) fields annotated with JCommander's
Parameter
annotation as well as ConfigValue
.