Settings
Jump to Settings Reference
Settings Files
All Gwen settings and properties are maintained in settings files in your project.
Formats
The following settings file formats are supported:
- HOCON (Human-Optimized Config Object Notation), since v3.0.0
- The recommended and default format
- A superset of JSON
- Maintained in
.conffiles
- JSON, since v3.0.0
- Pure JSON format
- Maintained in
.jsonfiles
- Properties, since v1.0.0
- Legacy Java properties style format
- Flat
name = valuepairs - Maintained in
.propertiesfiles
Ideally you should use one format for all your settings files, but using combinations of the above is also permitted. Priority will be given in the order shown to same named files in a directory having different formats:
.conf.json.properties
Load order and precedence
Settings are loaded in the following order of precedence, with those higher in the list overriding the lower.
- Environment variable overrides
- System properties
- User settings
- A
gwen.conf,gwen.json, orgwen.propertiesfile in your user directory
- A
- Profile settings
- A
*.conf,*.json, or*.properiesfile denoted name passed to-p|--profilelaunch option.
- A
- Launch settings
- Comma separated list of
*.conf,*.json, or*.properiesfiles passed to Gwen via the-c|--conflaunch option. These are loaded in the order given with latter entries overriding the former.
- Comma separated list of
- Project settings
- A
gwen.conf,gwen.jsonorgwen.propertiesfile in your root project directory
- A
- Default settings
- Internal Gwen defaults
-Dname=value pairs passed to Gwen as system properties have topmost precedence and will always override ALL other settings.
You can maintain settings and override internal defaults at various levels as described here.
User settings files
User-level settings can optionally be defined in a gwen.conf|json|properties file in the root of your user directory on a machine. These are useful when you want to override certain settings on a machine for a user.
/Users
└── /<username> (~/)
└── gwen.conf # User-level overrides
Profile settings files
All profile settings are stored in *.conf|json|properties files in the gwen/conf/profiles subdirectory of the project. Gwen selectively discovers and loads these files when you inovke Gwen with the -p|--profile option passing in a profile name. The settings file with the same name as the passed in profile is the one that is loaded.
/project # Your project root
└── /gwen
└── /conf
└── /profiles # Profile settings
├── profile1.conf
├── profile2.conf
├── ..
└── profileN.conf
Project settings files
When you set up and initialise your project, all project level settings are stored in a gwen.conf|json|properties file in the root of the project. Gwen automatically discovers and loads this file for you, so you don't need to explictly pass it to Gwen when you launch in the project directory.
/project # Your project root
└── gwen.conf # Project settings
Settings reference
Launch settings
gwen.launch.options.parallel
Controls whether or not the --parallel launch option will be passed to Gwen.
gwen.launch.options.parallel
--parallel launch option will be passed to Gwen.Supported values
trueto always launch Gwen in parallel execution modefalseto only launch Gwen in parallel execution mode if the--parallellaunch option is explicitly passed (default).
- conf
- json
- properties
Default value
gwen {
launch {
options {
parallel = false
}
}
}
Default value
{
"gwen": {
"launch": {
"options": {
"parallel": false
}
}
}
}
Default value
gwen.launch.options.parallel = false
gwen.launch.options.batch
Controls whether or not the -b|--batch launch option will be passed to Gwen.
gwen.launch.options.batch
-b|--batch launch option will be passed to Gwen.Supported values
trueto always launch Gwen in batch mode and disable the REPL.falseto launch Gwen in batch mode if the-b|--batchoption is explicitly passed and in REPL mode if it is not (default).
- conf
- json
- properties
Default value
gwen {
launch {
options {
batch = false
}
}
}
Default value
{
"gwen": {
"launch": {
"options": {
"batch": false
}
}
}
}
Default value
gwen.launch.options.batch = false
gwen.launch.options.verbose
Controls whether or not the -v|--verbose launch option will be passed to Gwen.
gwen.launch.options.verbose
-v|--verbose launch option will be passed to Gwen.Supported values
truefor verbose logging modefalsefor pretty logging mode (default)
- conf
- json
- properties
Default value
gwen {
launch {
options {
verbose = false
}
}
}
Default value
{
"gwen": {
"launch": {
"options": {
"verbose": false
}
}
}
}
Default value
gwen.launch.options.verbose = false
gwen.launch.options.dryRun
Controls whether or not the -n|--dry-run launch option will be passed to Gwen.
gwen.launch.options.dryRun
-n|--dry-run launch option will be passed to Gwen.Supported values
trueto always launch Gwen in dry run modefalseto only launch Gwen in dry run mode if the-n|--dry-runlaunch option is explicitly passed (default).
- conf
- json
- properties
Default value
gwen {
launch {
options {
dryRun = false
}
}
}
Default value
{
"gwen": {
"launch": {
"options": {
"dryRun": false
}
}
}
}
Default value
gwen.launch.options.dryRun = false
gwen.launch.options.report
Sets the -r|--report option to pass to Gwen.
gwen.launch.options.report
-r|--report option to pass to Gwen.Supported values
- A path to a directory to output all reports to (default =
${gwen.outDir}/reports).
- conf
- json
- properties
Default value
gwen {
launch {
options {
report = "${gwen.outDir}/reports"
}
}
}
Default value
{
"gwen": {
"launch": {
"options": {
"report": "${gwen.outDir}/reports"
}
}
}
}
Default value
gwen.launch.options.report = ${gwen.outDir}/reports
gwen.launch.options.format
Sets the -f|--format option to pass to Gwen.
gwen.launch.options.format
-f|--format option to pass to Gwen.Supported values
A list of zero or more of the following:
htmlto output HTML reportsjunitto output JUnit-XML reportsjsonto output JSON reportsresultsfor CSV results (since v3.77.0)noneto not output any reports
Notes
- conf
- json
- properties
Default value (empty to pick up Gwen default format: html)
gwen {
launch {
options {
format = [
]
}
}
}
Example with multiple entries
gwen {
launch {
options {
format = [
"html"
"results"
]
}
}
}
Default value (empty to pick up Gwen default format: html)
{
"gwen": {
"launch": {
"options": {
"format": [
]
}
}
}
}
Example with multiple entries
{
"gwen": {
"launch": {
"options": {
"format": [
"html",
"results"
]
}
}
}
}
Default value (empty to pick up Gwen default format: html)
gwen.launch.options.format =
Example with multiple entries (comma separated)
gwen.launch.options.format = html,results
gwen.launch.options.inputData
Sets the -i|--input-data option to pass to Gwen.
gwen.launch.options.inputData
-i|--input-data option to pass to Gwen.Supported values
- A path to a CSV or JSON data feed file to pass to Gwen on every launch
- conf
- json
- properties
Default value (blank for no input file)
gwen {
launch {
options {
inputData = ""
}
}
}
Example setting a default CSV data file
gwen {
launch {
options {
inputData = "data/file1.csv"
}
}
}
Example setting a default JSON data file (since v3.47.0)
gwen {
launch {
options {
inputData = "data/file1.json"
}
}
}
Default value (blank for no input file)
{
"gwen": {
"launch": {
"options": {
"inputData": ""
}
}
}
}
Example setting a default CSV data file
{
"gwen": {
"launch": {
"options": {
"inputData": "data/file1.csv"
}
}
}
}
Example setting a default JSON data file (since v3.47.0)
{
"gwen": {
"launch": {
"options": {
"inputData": "data/file1.json"
}
}
}
}
Default value (blank for no input file)
gwen.launch.options.inputData =
Example setting a default CSV data file
gwen.launch.options.inputData = data/file.csv
Example setting a default JSON data file (since v3.47.0)
gwen.launch.options.inputData = data/file.json
gwen.launch.options.meta
Sets the -m|--meta option to pass to Gwen.
gwen.launch.options.meta
-m|--meta option to pass to Gwen.Supported values
- A list of paths to meta files to pass to Gwen on every launch
Notes
- conf
- json
- properties
Default value (blank for no meta)
gwen {
launch {
options {
meta = [
]
}
}
}
Example setting two default meta files
gwen {
launch {
options {
meta = [
"meta/file1.meta"
"meta/file2.meta"
]
}
}
}
Default value (empty for no meta)
{
"gwen": {
"launch": {
"options": {
"meta": [
]
}
}
}
}
Example setting two default meta files
{
"gwen": {
"launch": {
"options": {
"meta": [
"meta/file1.meta",
"meta/file2.meta"
]
}
}
}
}
Default value (blank for no meta)
gwen.launch.options.meta =
Example setting two default meta files (comma separated)
gwen.launch.options.meta = meta/file1.meta,meta/file2.meta
gwen.launch.options.features
Sets the list of feature files or directories to pass to Gwen.
gwen.launch.options.features
Supported values
- A list of paths to feature files to pass to Gwen on every launch
Notes
- conf
- json
- properties
Default value (empty for no feature files/dirs)
gwen {
launch {
options {
features = [
]
}
}
}
Example setting two default feature files
gwen {
launch {
options {
features = [
"features/file1.feature"
"features/file2.feature"
]
}
}
}
Default value (empty for no feature files/dirs)
{
"gwen": {
"launch": {
"options": {
"features": [
]
}
}
}
}
Example setting two default feature files
{
"gwen": {
"launch": {
"options": {
"features": [
"features/file1.feature",
"features/file2.feature"
]
}
}
}
}
Default value (blank for no feature files/dirs)
gwen.launch.options.features =
Example setting two default feature files (comma separated)
gwen.launch.options.features = features/file1.feature,features/file2.feature
Core Settings
gwen.assertion.mode
Controls whether or not hard, soft or sustained assertions are enabled by default.
gwen.assertion.mode
Supported values
hardto halt feature execution on the first assertion error and report failure (default)softto collect all assertion errors and continue execution whilst reporting failuressustainedto collect all assertion errors and continue execution without reporting failures
- conf
- json
- properties
Default value
gwen {
assertion {
mode = "hard"
}
}
Default value
{
"gwen": {
"assertion": {
"mode": "hard"
}
}
}
Default value
gwen.assertion.mode = hard
gwen.auto.bind.tableData.outline.examples
Controls whether or not to bind row data in outline examples tables to same named attributes in the current scope.
gwen.auto.bind.tableData.outline.examples
Supported values
trueto bind table data to same named attributes in the current scope for each row (default)falseto not bind table data to attributes in the current scope
- conf
- json
- properties
Default value
gwen {
auto {
bind {
tableData {
outline {
examples = true
}
}
}
}
}
Default value
{
"gwen": {
"auto": {
"bind": {
"tableData": {
"outline": {
"examples": true
}
}
}
}
}
}
Default value
gwen.auto.bind.tableData.outline.examples = true
gwen.auto.trim.data.csv
Controls whether or not to trim surrounding whitespace from incoming CSV data.
gwen.auto.trim.data.csv
Supported values
trueto trim the CSV datafalseto not trim the CSV data (default)
- conf
- json
- properties
Default value
gwen {
auto {
trim {
data {
csv = false
}
}
}
}
Default value
{
"gwen": {
"auto": {
"trim": {
"data": {
"csv": false
}
}
}
}
}
Default value
gwen.auto.trim.data.csv = false
gwen.auto.trim.data.json
Controls whether or not to trim surrounding whitespace from incoming JSON data.
gwen.auto.trim.data.json
Supported values
trueto trim the JSON datafalseto not trim the JSON data (default)
- conf
- json
- properties
Default value
gwen {
auto {
trim {
data {
json = false
}
}
}
}
Default value
{
"gwen": {
"auto": {
"trim": {
"data": {
"json": false
}
}
}
}
}
Default value
gwen.auto.trim.data.json = false
gwen.behavior.rules
Controls whether strict or lenient rules around Given-When-Then usage will be enforced for features.
Note: gwen.behaviour.rules is no longer a supported alias (since v3.0.0)
gwen.behavior.rules
Note:
gwen.behaviour.rules is no longer a supported alias (since v3.0.0)Supported values
strictto enforce the following strict rules (default):- Steps in scenarios and backgrounds must satisfy Given-When-Then order
- Givens must set context
- Whens must perform actions
- Thens must assert expectations
- Buts must perform assertions (and are permitted after Then steps)
StepDefs tagged with
@Context: can only be called by Givens@Action: can only be called by Whens@Assertion: can only be called by Thens or Buts
lenientto relax all strict rules
- conf
- json
- properties
Default value since v3.0.0
gwen {
behavior {
rules = "strict"
}
}
Default value in prior versions
gwen {
behavior {
rules = "lenient"
}
}
Default value since v3.0.0
{
"gwen": {
"behavior": {
"rules": "strict"
}
}
}
Default value in prior versions
{
"gwen": {
"behavior": {
"rules": "lenient"
}
}
}
Default value since v3.0.0
gwen.behavior.rules = strict
Default value in prior versions
gwen.behavior.rules = lenient
gwen.dryRun.limit.tableData.outline.examples.records
Sets the maximum number of outline examples table records to include in dry runs.
gwen.dryRun.limit.tableData.outline.examples.records
Supported values
A positive integer representing the the maximum number of records to include
or
infinityto log all records (default)
- conf
- json
- properties
Default value
gwen {
dryRun {
limit {
tableData {
outline {
examples {
records = "infinity"
}
}
}
}
}
}
Default value
{
"gwen": {
"dryRun": {
"limit": {
"tableData": {
"outline": {
"examples": {
"records": = "infinity"
}
}
}
}
}
}
}
Default value
gwen.dryRun.limit.tableData.outline.examples.records = infinity
gwen.error.messages.inline.locators
Controls whether or not to inline locator information next to all named bindings in error messages.
gwen.error.messages.inline.locators
Supported values
trueto include locator informationfalseto exclude locator information (default)
- conf
- json
- properties
Default value since v3.30.1
gwen {
error {
messages {
inline {
locators = false
}
}
}
}
Effecitve default value in prior versions when setting was not defined
gwen {
error {
messages {
inline {
locators = true
}
}
}
}
Default value since v3.31.0
{
"gwen": {
"error": {
"messages": {
"inline": {
"locators: false
}
}
}
}
}
Effecitve default value in prior versions when setting was not defined
{
"gwen": {
"error": {
"messages": {
"inline": {
"locators: true
}
}
}
}
}
Default value since v3.31.0
gwen.error.messages.inline.locators = false
Effecitve default value in prior versions when setting was not defined
gwen.error.messages.inline.locators = true
gwen.feature.dialect
Sets the default Gherkin dialect (or spoken language).
gwen.feature.dialect
Supported values
- A spoken language ID (default =
en)
- conf
- json
- properties
Default value
gwen {
feature {
dialect = "en"
}
}
Default value
{
"gwen": {
"feature": {
"dialect": "en"
}
}
}
Default value
gwen.feature.dialect = en
gwen.feature.failfast.enabled
Enables or disables fail fast mode at the feature level.
gwen.feature.failfast.enabled
Supported values
trueto enable (default)- Will fail a feature as soon as the first scenario fails before resuming with the next feature.
falseto disable
- conf
- json
- properties
Default value
gwen {
feature {
failfast {
enabled = true
}
}
}
Default value
{
"gwen": {
"feature": {
"failfast": {
"enabled": true
}
}
}
}
Default value
gwen.feature.failfast.enabled = true
gwen.feature.failfast.exit
Controls whether to exit or resume with the next feature when a feature fails.
gwen.feature.failfast.exit
Supported values
trueto enable- Will fail a feature as soon as the first scenario fails and exit immediately.
falseto disable (default)- Will resume with the next feature if the previous one fails.
- conf
- json
- properties
Default value
gwen {
feature {
failfast {
exit = false
}
}
}
Default value
{
"gwen": {
"feature": {
"failfast": {
"exit": false
}
}
}
}
Default value
gwen.feature.failfast.exit = false
gwen.feature.mode
Controls whether or not Gwen DSL steps are permitted in feature specs.
gwen.feature.mode
Supported values
declarative(default)- DSL steps not permitted in feature specs
imperative- DSL steps permitted in feature specs
- conf
- json
- properties
Default value since v3.0.0
gwen {
auto {
feature {
mode = "declarative"
}
}
}
Default value in prior versions
gwen {
auto {
feature {
mode = "imperative"
}
}
}
Default value since v3.0.0
{
"gwen": {
"feature": {
"mode": "declarative"
}
}
}
Default value in prior versions
{
"gwen": {
"feature": {
"mode": "imperative"
}
}
}
Default value since v3.0.0
gwen.feature.mode = declarative
Default value in prior versions
gwen.feature.mode = imperative
gwen.mask.char
Sets the masking character used for logging masked settings.
gwen.mask.char
Supported values
- Any single character (default =
*)
- conf
- json
- properties
Default value
gwen {
mask {
char = "*"
}
}
Default value
{
"gwen": {
"mask": {
"char": "*"
}
}
}
Default value
gwen.mask.char = *
gwen.baseDir
Sets the base Gwen project directory
gwen.baseDir
gwen.outDir
Sets the default Gwen output directory.
gwen.outDir
Supported values
A relative or absolute directory location (default =
${gwen.baseDir}/output)- The output directory
- conf
- json
- properties
Default value
gwen {
outDir = "${gwen.baseDir}/output"
}
Default value
{
"gwen": {
"outDir": "${gwen.baseDir}/output"
}
}
Default value
gwen.outDir = ${gwen.baseDir}/output
gwen.parallel.maxThreads
Sets the maximum number of permitted parallel executor threads.
gwen.parallel.maxThreads
Supported values
auto(since v3.18.0) or0to run one thread on each available cores (default)- A percentage of the total number of the cores available (since v4.3.0). For example: 80%
Or positive integer value denoting the maximum number of threads to allow
- When less than the number of available cores, the remaining cores will be free
- When greater than the number of available cores, more than one thread may execute on some or all cores (use judiciously)
- conf
- json
- properties
Default value
gwen {
parallel {
maxThreads = auto
}
}
Default value
{
"gwen": {
"parallel": {
"maxThreads": auto
}
}
}
Default value
gwen.parallel.maxThreads = auto
gwen.rampup.interval.seconds
Sets the ramp up interval for staggered parallel execution.
gwen.rampup.interval.seconds
Supported values
- A positive integer denoting the number of seconds to wait before executing successive features in parallel
- Zero for no interval or delay between successive feature executions (default)
Example: A 5 second interval would stagger parallel feature executions like this over 4 cores:
time 00 05 10 15 seconds
│ │ │ │
core 1 │<── feature 1a ──>|<── feature 1b ──> ..
core 2 │ │<── feature 2a ──>|<── feature 2b ──> ..
core 3 │ │ │<── feature 3a ──>|<── feature 3b ──> ..
core 4 │ │ │ │<── feature 4a ──>|<── feature 4b ──> ..
- conf
- json
- properties
Default value
gwen {
rampup {
interval {
seconds = 0
}
}
}
Default value
{
"gwen": {
"rampup": {
"interval": {
"seconds": 0
}
}
}
}
Default value
gwen.rampup.interval.seconds = 0
gwen.report.attach.functions
Controls whether or not the scripts of evaluated functions are attached to steps in the Gwen report (default is true).
gwen.report.attach.functions
true).gwen.report.overwrite
Controls whether to overwrite previously generated reports or create a timestamped backup instead.
gwen.report.overwrite
Supported values
trueto overwrite previous report (default)falseto backup previous report into a timestamped directory
- conf
- json
- properties
Default value
gwen {
report {
overwrite = true
}
}
Default value
{
"gwen": {
"report": {
"overwrite": true
}
}
}
Default value
gwen.report.overwrite = true
gwen.report.stepDef.indent.pixels
Controls the left margin indent size of StepDefs in HTML reports.
gwen.report.stepDef.indent.pixels
Supported values
- A positive integer representing the indent size in pixels (default =
20)
- conf
- json
- properties
Default value
gwen {
report {
stepDef {
indent {
pixels = 20
}
}
}
}
Default value
{
"gwen": {
"report": {
"stepDef": {
"indent": {
"pixels": 20
}
}
}
}
}
Default value
gwen.report.stepDef.indent.pixels = 20
gwen.console.log.colors
Controls whether to use ANSI colors to highlight Gherkin keywords and evaluation results in the console report output.
gwen.console.log.colors
Supported values
trueto use colors (default)falseto not use colors
- conf
- json
- properties
Default value
gwen {
console {
log {
colors = true
}
}
}
Default value
{
"gwen": {
"console": {
"log": {
"colors": true
}
}
}
}
Default value
gwen.console.log.colors = true
gwen.console.log.depth
Controls the step logging depth in the console report output at evaluation time (excluding dry run mode which unconditionally logs all levels as of v3.41.0)
gwen.console.log.depth
Supported values
A positive integer representing the step depth to log to (default =
1)or
infinityto log to all depths
- conf
- json
- properties
Default value
gwen {
console {
log {
depth = 1
}
}
}
To log all depths:
gwen {
console {
log {
depth = "infinity"
}
}
}
Default value
{
"gwen": {
"console": {
"log": {
"depth": 1
}
}
}
}
To log all depths:
{
"gwen": {
"console": {
"log": {
"depth": "infinity"
}
}
}
}
Default value
gwen.console.log.depth = 1
To log all depths:
gwen.console.log.depth = infinity
gwen.console.repl.autoSuggestions
Controls whether or not auto suggestions based on user history are enabled or not in the REPL console.
gwen.console.repl.autoSuggestions
Supported values
trueto enable auto suggestions (default)falseto disable auto suggestions
- conf
- json
- properties
Default value
gwen {
console {
repl {
autoSuggestions = true
}
}
}
Default value
{
"gwen": {
"console": {
"repl": {
"autoSuggestions": true
}
}
}
}
Default value
gwen.console.repl.autoSuggestions = true
gwen.console.repl.tabCompletion
Controls whether or not tab completion is enabled or not in the REPL console.
gwen.console.repl.tabCompletion
Supported values
trueto enable tab completion (default)falseto disable tab completion
- conf
- json
- properties
Default value
gwen {
console {
repl {
tabCompletion = true
}
}
}
Default value
{
"gwen": {
"console": {
"repl": {
"tabCompletion": true
}
}
}
}
Default value
gwen.console.repl.tabCompletion = true
gwen.report.suppress.meta
Controls whether or not to suppress meta from generated HTML reports.
gwen.report.suppress.meta
Supported values
trueto suppress meta (default)falseto include meta
- conf
- json
- properties
Default value since v3.0.0
gwen {
report {
suppress {
meta = true
}
}
}
Default value in prior versions
gwen {
report {
suppress {
meta = false
}
}
}
Default value since v3.0.0
{
"gwen": {
"report": {
"suppress": {
"meta": true
}
}
}
}
Default value in prior versions
{
"gwen": {
"report": {
"suppress": {
"meta": false
}
}
}
}
Default value since v3.0.0
gwen.report.suppress.meta = true
Default value in prior versions
gwen.report.suppress.meta = false
gwen.report.slideshow.framespersecond
Sets the default number of frames per second to set the image playback speed to in generated slideshows.
gwen.report.slideshow.framespersecond
Supported values
- A positive integer denoting the number of frames per second (default =
4)
- conf
- json
- properties
Default value
gwen {
report {
slideshow {
framespersecond = 4
}
}
}
Default value
{
"gwen": {
"report": {
"slideshow": {
"framespersecond": 4
}
}
}
}
Default value
gwen.report.slideshow.framespersecond = 4
gwen.state.level
Controls whether to maintain state at the feature or scenario level.
gwen.state.level
Supported values
featurefor feature level state that is shared across scenarios in a feature (each feature gets a new state) (default)scenariofor scenario level state that is not shared across scenarios (each scenario gets a new state)
- conf
- json
- properties
Default value
gwen {
state {
level = "feature"
}
}
Default value
{
"gwen": {
"state": {
"level": "feature"
}
}
}
Default value
gwen.state.level = feature
gwen.video.dir
Sets the output directory for video recordings.
gwen.video.dir
Video capture is currently only supported in docker. This setting is used to set the location where the selenium video recorder will output mp4 files.
Supported values
- A relative or absolute directory location (default =
${gwen.outDir}/.video)
- conf
- json
- properties
Default value
gwen {
video {
dir = "$<user.home>/.assets/$<gwen.web.sessionId>"
}
}
Default value
{
"gwen": {
"video": {
"dir": $<user.home>/.assets/$<gwen.web.sessionId>"
}
}
}
Default value
gwen.web.dir = $<user.home>/.assets/$<gwen.web.sessionId>
gwen.video.timeoutSecs
Sets the number of seconds wait for video files to be ready when including them in generated HTML reports.
gwen.video.timeoutSecs
Video capture is currently only supported in Docker. This setting is used to set the maximum time to wait for video files to be asynchronously written out to the host directory by the video recorder after a browser session is closed. If the video files in your environment take longer than the default, then you will need to explicitly configure this setting to a higher value.
Supported values
- A number of seconds wo wait (default =
10)
- conf
- json
- properties
Default value
gwen {
video {
timeoutSecs = 10
}
}
Default value
{
"gwen": {
"video": {
"timeoutSecs": 10
}
}
}
Default value
gwen.web.timeoutSecs = 10
gwen.logLevel.deprecations
Controls how deprecation messages are reported.
gwen.logLevel.deprecations
Supported values
warnto log deprecations as warningserrorto raise and report deprecations as errorsnoneto suppress logging or reporting of deprecation messages (no operation)
- conf
- json
- properties
Default value
gwen {
logLevel {
deprecations = "warn"
}
}
Default value
{
"gwen": {
"logLevel": {
"deprecations": "warn"
}
}
}
Default value
gwen.logLevel.deprecations = warn
gwen.input.data.maskFields
Specifies input data fields to mask.
gwen.input.data.maskFields
- conf
- json
- properties
Default value
gwen {
input {
data {
maskFields = [
]
}
}
}
Default value
{
"gwen": {
"input": {
"data": {
"maskFields": [
]
}
}
}
}
Default value
gwen.input.data.maskFields =
gwen.input.data.readOnly
Enables or disables read-only mode for all data sourced from input files. This setting has no effect in REPL mode where read-only is not enforced.
gwen.input.data.readOnly
gwen.reports.results.files
Controls how CSV result files are generated.
gwen.reports.results.files
See CSV Reports for details.
Web Settings
gwen.web.assertions.delayMillisecs
Sets the time to delay all assertion attempts.
gwen.web.assertions.delayMillisecs
Supported values
- A number greater than zero denoting the number of milliseconds to delay each assertion attempt (default =
200).
- conf
- json
- properties
Default value
gwen {
web {
assertions {
delayMillisecs = 200
}
}
}
Default value
{
"gwen": {
"web": {
"assertions": {
"delayMillisecs": 200
}
}
}
}
Default value
gwen.web.assertions.delayMillisecs = 200
gwen.web.assertions.maxStrikes
Sets the maximum number of consecutive strikes an assertion can make within a timeout period before it is considered failed and reported.
gwen.web.assertions.maxStrikes
Supported values
- A number greater than zero denoting the maximum number of consecutive strikes to permit. You can tweak this value to optimise performance.
infinityto continually retry on every strike until the assertion passes or the timeout period expires (sub optimal performance)autoto let Gwen decide (default), Since v3.52.0- Since 3.52.0, Gwen sets this to the same value configured in gwen.web.wait.seconds. For example, if your configured timeout is 10 seconds, then your max strike count will be 10.
- This might change in future to use smarter approaches as Gwen evolves
- conf
- json
- properties
Default value (since v3.52.0)
gwen {
web {
assertions {
maxStrikes = auto
}
}
}
Default value (since v3.42.9)
gwen {
web {
assertions {
maxStrikes = 5
}
}
}
Default value (since v3.41.0)
gwen {
web {
assertions {
maxStrikes = 3
}
}
}
Default value in prior versions
gwen {
web {
assertions {
maxStrikes = infinity
}
}
}
Default value (since v3.52.0)
{
"gwen": {
"web": {
"assertions": {
"maxStrikes": "auto"
}
}
}
}
Default value (since v3.42.9)
{
"gwen": {
"web": {
"assertions": {
"maxStrikes": 5
}
}
}
}
Default value (since v3.41.0)
{
"gwen": {
"web": {
"assertions": {
"maxStrikes": 3
}
}
}
}
Default value in prior versions
{
"gwen": {
"web": {
"assertions": {
"maxStrikes": "inifinity"
}
}
}
}
Default value (since v3.52.0)
gwen.web.assertions.maxStrikes = auto
Default value (since v3.42.9)
gwen.web.assertions.maxStrikes = 5
Default value (since v3.41.0)
gwen.web.assertions.maxStrikes = 3
Default value in prior versions
gwen.web.assertions.maxStrikes = infinity
gwen.target.browser
Sets the default browser to target when Gwen is launched. Chrome, Firefox, Safari and Edge are supported.
Formerly gwen.web.browser (prior to v3.0.0)
gwen.target.browser
Formerly
gwen.web.browser (prior to v3.0.0)Supported values
The name of the browser settings file (minus extension) in your gwen/browsers folder to load if no other browser settings file is explicitly passed via the
-c/--configlaunch optionchromefor Chrome browser (default)firefoxfor Firefox browsersafarifor Safari browseredgefor Edge browser, since v2.35.0
- conf
- json
- properties
Default value
gwen {
target {
browser = "chrome"
}
}
Default value
{
"gwen": {
"target": {
"browser": "chome"
}
}
}
Default value
gwen.target.browser = chrome
gwen.target.env
Sets the environment settings to load when Gwen is launched.
gwen.target.env
Supported values
The name of the environment settings file (minus extension) in your gwen/env folder to load if no other environment settings file is explicitly passed via the
-c/--configlaunch optionlocalfor your local development environmentdevfor your dedicated development environmenttestfor your dedicated test environment (default)stagingfor your dedicated staging environmentprodfor your production environment- Or the name of any other environment file you may create in your gwen/env folder
- conf
- json
- properties
Default value (since v3.41.0)
gwen {
target {
env = "test"
}
}
Default value in prior versions
gwen {
target {
env = "local"
}
}
Default value (since v3.41.0)
{
"gwen": {
"target": {
"env": "test"
}
}
}
Default value in prior versions
{
"gwen": {
"target": {
"env": "local"
}
}
}
Default value (since v3.41.0)
gwen.target.env = test
Default value in prior versions
gwen.target.env = local
gwen.web.browser.headless
Controls whether or not to run the browser in headless mode.
gwen.web.browser.headless
Supported values
trueto run headlessfalseto not run headless (default)
Notes
- conf
- json
- properties
Default value
gwen {
web {
browser {
headless = false
}
}
}
Default value
{
"gwen": {
"web": {
"browser": {
"headless": false
}
}
}
}
Default value
gwen.web.browser.headless = false
gwen.web.browser.size
Sets the size of the browser window.
gwen.web.browser.size
Supported values
String of format
<width> x <height>, where:<width>is a positive integer denoting the desired width<height>is a positive integer denoting the desired height
- conf
- json
- properties
Example
gwen {
web {
browser {
size = "1920x1080"
}
}
}
Example
{
"gwen": {
"web": {
"browser": {
"size": "1920x1080"
}
}
}
}
Example
gwen.web.browser.size = 1920x1080
gwen.web.browser.position
Sets the position of the main browser window.
gwen.web.browser.position
Supported values
String of format
<x>,<y>, where:<x>is a positive integer denoting the x co-ordinate<y>is a positive integer denoting the y co-ordinate
- conf
- json
- properties
Example
gwen {
web {
browser {
size = "0,0"
}
}
}
Example
{
"gwen": {
"web": {
"browser": {
"size": "0,0"
}
}
}
}
Example
gwen.web.browser.size = 0,0
gwen.web.capability.<capabilities>
or Since v3.23.0 (preferred)
gwen.web.capabilities.<capabilities>
Sets a one or more web capabilities on the underlying web driver (including W3C protocol extensions).
gwen.web.capability.<capabilities>
gwen.web.capabilities.<capabilities>
Where
<capabilities>can include one more standard, browser specific or vendor specific capabilities.- Standard or Dynamic Selenid grid capabilities at top level
Nested browser and vendor specific capabilities (protocol extensions)
- Chrome capabilities inside a
goog:chromeOptionsblock - Edge capabilities inside a
ms:edgeOptionsblock - Firefox capabilities inside a
moz:firefoxOptionsblock - BrowserStack capabilities inside a
bstack:optionsblock - LambdaTest capabilities inside a
LT:Optionsblock - And similarly for other vendors. See vendor documentation for nested block (protocol key) name
- Chrome capabilities inside a
- conf
- json
- properties
Example
gwen {
web {
capabilities {
acceptInsecureCerts = false
"se:recordVideo" = false
}
}
}
Example
{
"gwen": {
"web": {
"capabilities": {
"acceptInsecureCerts": false
"se:recordVideo": true
}
}
}
}
Example
gwen.web.capabilities.acceptInsecureCerts = false
gwen.web.capabilities.se\:recordVideo = true
gwen.web.capture.screenshots.enabled
Controls whether or not to capture screenshots and generate slideshow.
Formerly gwen.web.capture.screenshots (prior to v3.0.0)
gwen.web.capture.screenshots.enabled
Formerly
gwen.web.capture.screenshots (prior to v3.0.0)Supported values
trueto enablefalseto disable (default)
- conf
- json
- properties
Default value
gwen {
web {
capture {
screenshots {
enabled = false
}
}
}
}
Default value
{
"gwen": {
"web": {
"capture": {
"screenshots": {
"enabled": false
}
}
}
}
}
Default value
gwen.web.capture.screenshots.enabled = false
gwen.web.capture.screenshots.highlighting
Controls whether or not to capture screenshots of element highlighting (in addition to standard screenshots).
gwen.web.capture.screenshots.highlighting
Supported values
trueto enablefalseto disable (default)
- conf
- json
- properties
Default value
gwen {
web {
capture {
screenshots {
highlighting = false
}
}
}
}
Default value
{
"gwen": {
"web": {
"capture": {
"screenshots": {
"highlighting": false
}
}
}
}
}
Default value
gwen.web.capture.screenshots.highlighting = false
gwen.web.capture.screenshots.duplicates
Controls whether or not consecutively identical screenshots should be captured or discarded.
gwen.web.capture.screenshots.duplicates
Supported values
trueto keep duplicatesfalseto discard duplicates (default)
- conf
- json
- properties
Default value
gwen {
web {
capture {
screenshots {
duplicates = false
}
}
}
}
Default value
{
"gwen": {
"web": {
"capture": {
"screenshots": {
"duplicates": false
}
}
}
}
}
Default value
gwen.web.capture.screenshots.duplicates = false
gwen.web.highlight.style
Sets the HTML styling used to highlight elements that Gwen interacts with.
gwen.web.highlight.style
Supported values
- HTML style strings (default =
background: yellow; border: 1px solid gold;)
- conf
- json
- properties
Default value
gwen {
web {
highlight {
style = "background: yellow; border: 1px solid gold;"
}
}
}
Default value
{
"gwen": {
"web": {
"highlight": {
"style": "background: yellow; border: 1px solid gold;"
}
}
}
}
Default value
gwen.web.highlight.style = background: yellow; border: 1px solid gold;
gwen.web.implicit.element.focus
Controls whether or not Gwen should shift the focus onto elements before interacting with them.
gwen.web.implicit.element.focus
Supported values
trueto enable auto focus (default)falseto disable auto focus
- conf
- json
- properties
Default value
gwen {
web {
implicit {
element {
focus = true
}
}
}
}
Default value
{
"gwen": {
"web": {
"implicit": {
"element": {
"focus": true
}
}
}
}
}
Default value
gwen.web.implicit.element.focus = true
gwen.web.implicit.element.moveTo
Controls whether or not Gwen should physically move to elements to bring them into view before interacting with them.
gwen.web.implicit.element.moveTo
Supported values
trueto enable auto move tofalseto disable auto move to (default)
- conf
- json
- properties
Default value
gwen {
web {
implicit {
element {
moveTo = false
}
}
}
}
Default value
{
"gwen": {
"web": {
"implicit": {
"element": {
"moveTo": false
}
}
}
}
}
Default value
gwen.web.implicit.element.moveTo = false
gwen.web.locator.wait.seconds
Sets the maximum number of seconds that Gwen should wait when locating web elements before timing out.
gwen.web.locator.wait.seconds
Supported values
- A positive integer denoting a number of seconds (default =
gwen.web.wait.seconds= 10)
- conf
- json
- properties
Default value
gwen {
web {
locator {
wait {
seconds = ${gwen.web.wait.seconds}
}
}
}
}
Default value
{
"gwen": {
"web": {
"locator": {
"wait": {
"seconds": ${gwen.web.wait.seconds}
}
}
}
}
}
Default value
gwen.web.locator.wait.seconds = ${gwen.web.wait.seconds}
gwen.web.maximize
Controls whether or not the web driver should maximize the browser window.
gwen.web.maximize
gwen.web.remote.localFileDetector
Controls whether or not the local file detector on remote web driver will be enabled.
gwen.web.remote.localFileDetector
Supported values
autoto automatically enable for remote driver sessions only (default)trueto enablefalseto disable
This setting is ignored if gwen.web.remote.url is not set.
- conf
- json
- properties
Default value
gwen {
web {
remote {
localFileDetector = auto
}
}
}
Default value
{
"gwen": {
"web": {
"remote": {
"localFileDetector": "auto"
}
}
}
}
Default value
gwen.web.remote.localFileDetector = auto
gwen.web.remote.url
Remote web driver url for connecting to a Selenium Grid server.
gwen.web.remote.url
gwen.web.remote.connectTimeout.seconds
Sets the maximum time to wait for a remote grid connection before timing out.
gwen.web.remote.connectTimeout.seconds
Supported values
- A positive integer denoting a number of seconds (default =
30)
- conf
- json
- properties
Default value
gwen {
web {
remote {
connectTimeout {
seconds = 60
}
}
}
}
Default value
{
"gwen": {
"web": {
"remote": {
"connectTimeout": {
"seconds": 60
}
}
}
}
}
Default value
gwen.web.remote.connectTimeout.seconds = 60
gwen.web.remote.sessionRetries
Controls whether or not to retry failed remote session creation attempts.
gwen.web.remote.sessionRetries
Supported values
trueto retryfalseto not retryautoto retry only for remote sessions and whengwen-web-remote-urlis set (default)
When enabled, the number of retry attempts is determined by the number of available CPU cores divided by 4. The first failed attempt waits 1 second, the next 2 seconds, the next 3 seconds and so on until all attempts are exhausted.
- conf
- json
- properties
Example
gwen {
web {
remote {
sessionRetries = auto
}
}
}
Example
{
"gwen": {
"web": {
"remote": {
"sessionRetries": "auto"
}
}
}
}
Example
gwen.web.remote.sessionRetries = auto
gwen.web.sendKeys.clearFirst
Controls whether or not Gwen will clear input fields before sending keys to them.
gwen.web.sendKeys.clearFirst
gwen.web.sendKeys.clickFirst
Controls whether or not Gwen will click input fields before sending keys to them.
gwen.web.sendKeys.clickFirst
gwen.web.session.expired.autoReplace
Controls whether or not Gwen will auto replace expired sessions with new ones.
gwen.web.session.expired.autoReplace
Supported values
trueto auto replace (default)falseto throw exception
- conf
- json
- properties
Default value
gwen {
web {
session {
expired {
autoReplace = true
}
}
}
}
Default value
{
"gwen": {
"web": {
"session": {
"expired": {
"autoReplace": true
}
}
}
}
}
Default value
gwen.web.session.expired.autoReplace = true
gwen.web.throttle.msec
Sets the number of milliseconds to wait between web driver interactions and also directly controls web element highlighting duration.
gwen.web.throttle.msec
Supported values
- A positive integer denoting a number of milliseconds. Set to zero for maxmum speed with no highlighting (default =
100).
- conf
- json
- properties
Default value
gwen {
web {
throttle {
msec = 100
}
}
}
Default value
{
"gwen": {
"web": {
"throttle": {
"msec": 100
}
}
}
}
Default value
gwen.web.throttle.msec = 100
gwen.web.useragent
Sets the user agent header in the browser to the literal string value assigned.
gwen.web.useragent
Supported values
- User agent string
- conf
- json
- properties
Example
gwen {
web {
useragent = "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
}
}
Example
{
"gwen": {
"web": {
"useragent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
}
}
}
Example
gwen.web.useragent = Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
gwen.web.wait.seconds
Sets the default maximum number of seconds that Gwen should wait for time senstive operations before timing out.
gwen.web.wait.seconds
Chrome
gwen.web.chrome.args
A chrome preference value.
gwen.web.chrome.args
Supported values
Notes
- conf
- json
- properties
Example
gwen {
web {
chrome {
args = [
"--ignore-certificate-errors"
"--incognito"
]
}
}
}
Example
{
"gwen": {
"web": {
"chrome": {
"args": [
"--ignore-certificate-errors",
"--incognito"
]
}
}
}
}
Example (multiple values comma separated)
gwen.web.chrome.args = --ignore-certificate-errors,--incognito
gwen.web.chrome.args.<seqNo>
Passes an argument to the Chrome web driver.
gwen.web.chrome.args.<seqNo>
Where
<seqNo>is a unique sequence number
Supported values
- conf
- json
- properties
Use gwen.web.chrome.args instead.
Use gwen.web.chrome.args instead.
Example
gwen.web.chrome.args.1=--ignore-certificate-errors
gwen.web.chrome.args.2=--window-size=1920,1080
gwen.web.chrome.extensions
A chrome preference value.
gwen.web.chrome.extensions
Supported values
- A relative or absolute file path to an extension (.crx) file or directory
Notes
- conf
- json
- properties
Example
gwen {
web {
chrome {
extensions = [
"path/to/extenstion.crx"
]
}
}
}
Example
{
"gwen": {
"web": {
"chrome": {
"extensions": [
"path/to/extenstion.crx"
]
}
}
}
}
Example (use comma seaprated value for multiple entries)
gwen.web.chrome.extensions = path/to/extenstion.crx
gwen.web.chrome.mobile.<emulation>
Mobile emulation for Chrome.
gwen.web.chrome.mobile.<emulation>
Where
<emulation>can be one or more of:deviceNamefor the device namewidthfor the device widthheightfor the device heightpixelRatiofor the device pixel ratiotouchfor the device touch mode
- conf
- json
- properties
Example emulating by name
gwen {
web {
chrome {
mobile {
deviceName = "Pixel 2"
}
}
}
}
Example emulating by metrics
gwen {
web {
chrome {
mobile {
width = 360
height = 640
pixelRatio = 3.0
touch = true
}
}
}
}
Example emulating by name
{
"gwen": {
"web": {
"chrome": {
"mobile": {
"deviceName": "Pixel 2"
}
}
}
}
}
Example emulating by metrics
{
"gwen": {
"web": {
"chrome": {
"mobile": {
"width": 360,
"height": 640,
"pixelRatio": 3.0,
"touch": true
}
}
}
}
}
Example emulating by name
gwen.web.chrome.mobile.deviceName = Pixel 2
Example emulating by metrics
gwen.web.chrome.mobile.width = 360
gwen.web.chrome.mobile.height = 640
gwen.web.chrome.mobile.pixelRatio = 3.0
gwen.web.chrome.mobile.touch = true
gwen.web.chrome.path
Overrides the path to the default system Chrome browser binary.
gwen.web.chrome.path
Supported values
The path the the Chrome application.
- On macOS, this should be the actual binary, not just the app (e.g., /Applications/Google Chrome.app/Contents/MacOS/Google Chrome).
- conf
- json
- properties
Example
gwen {
web {
chrome {
path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}
}
}
Example
{
"gwen": {
"web": {
"chrome": {
"path": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}
}
}
}
Example
gwen.web.chrome.path = /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
gwen.web.chrome.prefs
A chrome preference value.
gwen.web.chrome.prefs
Supported values
Notes
- conf
- json
- properties
Example
gwen {
web {
chrome {
prefs {
download {
default_directory = path/to/dir
prompt_for_download = false
}
}
}
}
}
Example
{
"gwen": {
"web": {
"chrome": {
"prefs": {
"download": {
"default_directory": "path/to/dir",
"prompt_for_download": false
}
}
}
}
}
}
Example (multiple values comma separated)
gwen.web.chrome.prefs = download.default_directory=path/to/dir,download.prompt_for_download=false
gwen.web.chrome.pref.<name>
Sets a Chrome preference.
gwen.web.chrome.pref.<name>
Where
<name>is a supported Chrome preference name
Supported values
- A preference value
- conf
- json
- properties
Use gwen.web.chrome.prefs instead.
Use gwen.web.chrome.prefs instead.
Example
gwen.web.chrome.pref.download.default_directory = path/to/dir
gwen.web.chrome.pref.download.prompt_for_download = false
Edge
gwen.web.edge.args
A chrome preference value.
gwen.web.edge.args
Supported values
Notes
- conf
- json
- properties
Example
gwen {
web {
edge {
args = [
"--ignore-certificate-errors"
"--incognito"
]
}
}
}
Example
{
"gwen": {
"web": {
"edge": {
"args": [
"--ignore-certificate-errors",
"--incognito"
]
}
}
}
}
Example (multiple values comma separated)
gwen.web.edge.args = --ignore-certificate-errors,--incognito
gwen.web.edge.args.<seqNo>
Passes an argument to the Edge web driver.
gwen.web.edge.args.<seqNo>
Where
<seqNo>is a unique sequence number
Supported values
- conf
- json
- properties
Use gwen.web.edge.args instead.
Use gwen.web.edge.args instead.
Example
gwen.web.edge.args.1=--ignore-certificate-errors
gwen.web.edge.args.2=--window-size=1920,1080
gwen.web.edge.extensions
A chrome preference value.
gwen.web.edge.extensions
Supported values
- A relative or absolute file path to an extension (.crx) file or directory
Notes
- conf
- json
- properties
Example
gwen {
web {
edge {
extensions = [
"path/to/extenstion.crx"
]
}
}
}
Example
{
"gwen": {
"web": {
"edge": {
"extensions": [
"path/to/extenstion.crx"
]
}
}
}
}
Example (use comma seaprated value for multiple entries)
gwen.web.edge.extensions = path/to/extenstion.crx
gwen.web.edge.mobile.<emulation>
Mobile emulation for Edge.
gwen.web.edge.mobile.<emulation>
Where
<emulation>can be one or more of:deviceNamefor the device namewidthfor the device widthheightfor the device heightpixelRatiofor the device pixel ratiotouchfor the device touch modeuserAgentfor the device user agent
- conf
- json
- properties
Example emulating by name
gwen {
web {
edge {
mobile {
deviceName = "Pixel 2"
}
}
}
}
Example emulating by metrics
gwen {
web {
edge {
mobile {
width = 360
height = 640
pixelRatio = 3.0
touch = true
}
}
}
}
Example emulating by name
{
"gwen": {
"web": {
"edge": {
"mobile": {
"deviceName": "Pixel 2"
}
}
}
}
}
Example emulating by metrics
{
"gwen": {
"web": {
"edge": {
"mobile": {
"width": 360,
"height": 640,
"pixelRatio": 3.0,
"touch": true
}
}
}
}
}
Example emulating by name
gwen.web.edge.mobile.deviceName = Pixel 2
Example emulating by metrics
gwen.web.edge.mobile.width = 360
gwen.web.edge.mobile.height = 640
gwen.web.edge.mobile.pixelRatio = 3.0
gwen.web.edge.mobile.touch = true
gwen.web.edge.path
Overrides the path to the default system Edge browser binary.
gwen.web.edge.path
Supported values
The path the the Edge application.
- On macOS, this should be the actual binary.
- conf
- json
- properties
Example
gwen {
web {
edge {
path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}
}
}
Example
{
"gwen": {
"web": {
"edge": {
"path": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}
}
}
}
Example
gwen.web.edge.path = C:/Program Files (x86)/Microsoft/Edge Dev/Application/msedge.exe
gwen.web.edge.prefs
A chrome preference value.
gwen.web.edge.prefs
Supported values
Notes
- conf
- json
- properties
Example
gwen {
web {
edge {
prefs {
download {
default_directory = path/to/dir
prompt_for_download = false
}
}
}
}
}
Example
{
"gwen": {
"web": {
"edge": {
"prefs": {
"download": {
"default_directory": "path/to/dir",
"prompt_for_download": false
}
}
}
}
}
}
Example (multiple values comma separated)
gwen.web.edge.prefs = download.default_directory=path/to/dir,download.prompt_for_download=false
gwen.web.edge.pref.<name>
Sets a Edge preference.
gwen.web.edge.pref.<name>
Where
<name>is a supported Edge preference name
Supported values
- A preference value
- conf
- json
- properties
Use gwen.web.edge.prefs instead.
Use gwen.web.edge.prefs instead.
Example
gwen.web.edge.pref.download.default_directory = path/to/dir
gwen.web.edge.pref.download.prompt_for_download = false
Firefox
gwen.web.firefox.prefs
A chrome preference value.
gwen.web.firefox.prefs
Supported values
- Firefox preferences (for full list, visit
about:configin your Firefox browser)
Notes
- conf
- json
- properties
Example
gwen {
web {
firefox {
prefs {
browser {
download {
useDownloadDir = false
loglevel = Error
}
}
}
}
}
}
Example
{
"gwen": {
"web": {
"firefox": {
"prefs": {
"browser": {
"download": {
"useDownloadDir": false,
"loglevel": "Error"
}
}
}
}
}
}
}
Example (multiple values comma separated)
gwen.web.firefox.prefs = browser.download.useDownloadDir=false,browser.download.loglevel=Error
gwen.web.firefox.pref.<name>
Sets a Firefox preference.
gwen.web.firefox.pref.<name>
Where
<name>is a Firefox preference name
Supported values
- Firefox preferences (for full list, visit
about:configin your Firefox browser)
- conf
- json
- properties
Use gwen.web.firefox.prefs instead.
Use gwen.web.firefox.prefs instead.
Example
gwen.web.firefox.pref.browser.download.useDownloadDir = false
gwen.web.firefox.pref.browser.download.loglevel = Error
gwen.web.suppress.images
Controls whether or not image rendering should be suppressed in the browser (firefox only).
gwen.web.suppress.images
Masked Settings
Since v2.48.0
It is a common security practice to never log sensitive data. To support this practice, Gwen will hide all settings that you flag as "masked" by logging their values as ***** in all logs, reports, error messages and console outputs.
Flagging masked settings
To flag a setting as masked, append :masked to its defined name.
For example, to access a password stored in an environment variable named USER_PASSOWRD, you can read it into a masked setting named user.password as follows:
- conf
- json
- properties
user {
"password:masked" = "${env.USER_PASSWORD}"
}
{
"user": {
"password:masked": "${env.USER_PASSWORD}"
}
}
user.password\:masked = ${env.USER_PASSWORD}
Note: You will need to escape : as \: in properties files
Masking input fields
Since v4.1.0
To mask an input field, add the field's name to the gwen.input.data.maskFields setting. The field value will then be masked in all Gwen outputs.
Using masked settings
To use a masked setting, just reference it anywhere you need to using it's name (excluding the :masked suffix).
Example:
When I enter "${user.password}" in the password field
When evaluated, the above will be logged as follows in all outputs:
When I enter "*****" in the password field
It is your resposibility to enter sensitive data such as passwords into password protected fields to prevent them from being displayed in the browser.
Custom mask character
You can change the default mask character from * to another character of your choice by assigning it to the gwen.mask.char setting.
Masked Data Bindings
Values returned by data bindings in the following DSLs can also be masked with the @Masked annotation:
<name> is defined by <javascript|js> "<script>"<name> is defined by <javascriptRef> applied to "<argument>"<name> is defined by <javascriptRef> applied to "<arguments>" delimited by "<delimiter>"<name> is defined by system process "<expression>"<name> is defined by system process "<expression>" delimited by "<delimiters>"<name> is defined by unix system process "<expression>"<name> is defined by the <nodeType> in <xmlRef> by xpath "<expression>"<name> is defined in <textRef> by regex "<expression>"<name> is defined in <jsonRef> by json path "<expression>"<name> is defined in the <dbName> database by sql "<selectStmt>"
JSONArray Notation
Since v3.53.0
Lists can be stored in settings in various ways. For example, a list of values could be stored in your settings file as follows:
- conf
- json
- properties
my {
values = [
"Gwen"
"Jenkins"
"Yarn"
"Docker"
]
}
{
"my": {
"values": [
"Gwen",
"Jenkins",
"Yarn",
"Docker"
]
}
}
my.values = Gwen,Jenkins,Yarn,Docker
To access a list of values configured in your settings as a JSON array, append :JSONArray to its setting name in the placeholder references in your feature or meta steps. A JSON array literal containing the values will then be expanded inline.
Example 1
The following will bind the JSON Array ["Gwen","Jenkins","Yarn","Docker"] to the values variable in the current scope:
Given values is "${my.values:JSONArray}"
Will expand to:
Given values is "["Gwen","Jenkins","Yarn","Docker"]"
Example 2
The following will inline the JSON Array into a JavaScript expression to get the length and store that in the length variable in the current scope:
Given length is defined by js "${my.values:JSONArray}.length"
Then length should be "4"
Will expand to:
Given length is defined by js "["Gwen","Jenkins","Yarn","Docker"].length"
Then length should be "4"

