Custom Properties Generator
Use this generator to choose SHAFT properties, edit their values, and download the matching .properties files.
Save generated files under src/main/resources/properties/ in your test project. SHAFT reads every .properties file in that folder during startup.
src/main/resources/properties/SHAFT reads every .properties file in this folder.Platform
Used to configure testing behind a proxy. e.g. corporate proxy.
To enable or disable the driver proxy.
To enable or disable the WebDriver BiDi protocol.
For Appium, set the below settings and move to the Mobile tab to continue. For BrowserStack, set the "Target Operating System" below, and the "Automation Name" in the Mobile tab, then configure the "browserStack.properties" file in your project directory.
To enable or disable the JVM proxy.
Cross Browser Mode allows SHAFT to run your test class against Chrome, Firefox, and Safari! You need to have 'Docker Desktop' installed on your machine, and configured to use Linux images. Off -> Your tests will run normally and respect your configuration. Sequential -> Your tests will run on Chrome, Firefox, and Safari in sequence. Parallelized -> Your tests will run on Chrome, Firefox and Safari in parallel. And for each browser they will run in sequence.
The target operating system for test execution.
Web
Base URL for the application under test.
Won't work if autoMaximizeBrowserWindow is enabled.
Won't work if autoMaximizeBrowserWindow is enabled.
This only works for Chrome and Firefox. Allows you to use Selenium Manager to download the latest version from CfT which promises better performance and reliability.
This only works for Chrome, Firefox and Edge.
Enable browser incognito/private mode.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
This only works for Chrome and Edge.
Controls when Selenium considers the page loaded.
Controls the document readiness state to wait for.
The target web browser for test execution.
Mobile
You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile as a prefix.
Mobile app setting.
Mobile app Activity setting.
Mobile app Package setting.
Mobile automation Name setting.
Mobile bundle Id setting.
Mobile device Name setting.
Mobile platform Version setting.
Mobile udid setting.
The latest version of the WebDriver executable that is compatible with the target browser. You can get it from here . You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile as a prefix.
Platform Name setting.
API
Enables or disables Swagger/OpenAPI contract validation for API testing.
URL or file path to the OpenAPI schema for validation.
Flags
Attempt to click on element before typing.
Automatically close driver instance after test execution.
Automatically add recommended Chrome options for better stability.
Automatically assert API response status code.
Automatically maximize browser window on launch.
Replaces both deprecated attemptClearBeforeTyping and attemptClearBeforeTypingUsingBackspace flags. native = clear using native Selenium method, backspace = clear by deleting letter by letter, off = no clearing before typing.
Fallback to JavaScript click when WebDriver click fails.
To disable the cache in a browser session.
Disable SSL certificate validation.
Enable true native mode for mobile testing.
When retrying a failed test, capture screenshots and logs to attach as supporting evidence in the Allure report.
Force check that element locator returns only one element.
Force check for element visibility before interactions.
Force check that navigation to URL was successful.
Force check status of remote server before execution.
Force check that text was typed correctly after typing action.
Handle non-select dropdown elements.
0 -> Disabled, 1 -> Without Headless Execution, 2 -> With Headless Execution Enabling maximumPerformanceMode will disable all complementary features to ensure the fastest execution possible with a 400% calculated performance boost.
Respect built-in waits when using native mode.
Maximum number of retry attempts for failed tests.
Mode for scrolling to elements.
It is recommended to leave this feature disabled unless you explicitly want to skip any tests that have the @Issue or @Issues annotation.
Enable telemetry data collection for SHAFT usage analytics.
Validate swipe to element action on mobile.
Reporting
Always log discreetly without detailed output.
Attach a streamed, deduplicated snapshot of the full engine log to the Allure report after test execution without deleting the live log file.
Capture element name in reports for better readability.
Capture WebDriver logs for debugging purposes.
Clean summary reports directory before execution.
Enable debug mode for verbose logging.
Disable all logging output.
Open execution summary report after test execution.
Open Lighthouse performance report during execution.
Allure
When true, accumulates Allure history across runs to enable trend graphs and historical comparison. When false, old results are deleted before the new run. (previously: cleanAllureResultsDirectoryBeforeExecution)
When true, keeps previous Allure HTML report files in the report directory. When false, only the latest run report is retained.
Open the Allure report in the default browser automatically after test execution. (previously: openAllureReportAfterExecution)
Clean the Allure results directory before each test run. Disable when merging results from multiple partial runs.
URL or local path to a custom logo image to replace the default SHAFT logo in the Allure report.
Custom title displayed in the header of the generated Allure report.
true to enforce configured Allure 3 CLI usage; false for legacy PATH-first behavior
Generate a self-contained ZIP archive of the Allure report after test execution. Useful for sharing or archiving in CI pipelines. (previously: generateAllureReportArchive)
Controls the Allure 3 Awesome plugin groupBy hierarchy. Common values include epic,feature,story and package,class,method.
Controls the Allure 3 Awesome plugin open option passed to Allure CLI report generation.
Enables SHAFT-managed Allure 3 native real-time monitoring via allure watch while tests run. Ignored for Allure 2 or when the Allure CLI cannot be resolved.
Controls the Allure 3 Awesome plugin reportLanguage option used by the generated report UI.
Controls the Allure 3 Awesome plugin singleFile option. When true, the report is generated as a self-contained HTML file.
Timeouts
Timeout in seconds for API connection manager.
Timeout in seconds for API connections.
Timeout in seconds for API socket connections.
Timeout in seconds for browser navigation.
Timeout in seconds for database login.
Timeout in seconds for database network operations.
Timeout in seconds for database queries.
Default timeout in seconds for element identification.
Timeout in seconds for Docker commands.
Timeout in seconds for page load.
Timeout in seconds for remote server instance creation.
Timeout in seconds for script execution.
Timeout in seconds for shell session.
Timeout in seconds for remote server to be up.
Especially useful for modern/responsive web apps using React, Vue, Angular, ...etc
Wait for remote server to be up before execution.
Timeout in seconds for wait.until operations.
Visuals
Animated Gif frame Delay setting.
Create animated GIF from screenshots.
Screenshot Params highlight Elements setting.
Screenshot Params highlight Method setting.
Screenshot Params scaling Factor setting.
Screenshot Params screenshot Type setting.
Screenshot Params skipped Elements From Screenshot setting.
Screenshot Params watermark setting.
Screenshot Params watermark Opacity setting.
Screenshot Params when To Take AScreenshot setting.
Video Params record Video setting.
Video Params scope setting.
Visual matching threshold for AI powered element identification.
When to capture page source snapshots.
Jira
Pattern for custom links in Allure reports.
Pattern for TMS (Test Management System) links in Allure.
Default assignee for reported bugs.
Jira authorization credentials (username:token or username:password).
Authorization type for Jira API.
Description for test execution in Jira/Xray.
Name for test execution in Jira/Xray.
Enable Jira integration for test management.
Jira instance URL.
Jira project key.
Automatically report bugs to Jira on test failures.
Path to test results file for Jira/Xray reporting.
Report test case execution results to Jira/Xray.
Cucumber
true to disable ANSI colors; false to keep them enabled
true to enable dry-run mode; false for normal execution
the execution limit as a string, or empty for unlimited
the execution order string
true to fail on undefined/pending steps; false to allow them
true to enable WIP mode; false otherwise
the features path string
the name filter regex, or empty to run all scenarios
the tag filter expression, or empty to run all scenarios
the glue path(s) string
the object factory class name, or empty to use the default
the plugin configuration string
true to suppress the publish banner; false to display it
the snippet type string
Healenium
Heal enabled setting.
Imitate Port setting.
Recovery tries setting.
Score cap setting.
Server Host setting.
Server Port setting.
Healing
Enables optional provider reranking after deterministic eligibility.
Controls when enabled AI reranking runs after deterministic scoring.
Required lead over the next eligible candidate.
Deterministic evidence categories allowed for recovery.
Enables bounded local recovery history.
Maximum retained history entries.
Local recovery history file.
Maximum history age in days.
Minimum deterministic confidence when no trust percentage override is set.
Preferred human-readable trust gate. -1 keeps using healing.minimumConfidence.
Reserved consent gate for reviewed source-patch proposals.
Selects the locator recovery strategy.
Attributes treated as stable test IDs.
Enables optional local visual evidence.
Natural Actions
Allows optional provider-assisted planners after deterministic planning is unavailable.
Restricts which action categories natural actions may execute.
Enables driver.act(...). Disabled plans fail before execution.
Minimum plan trust required before execution.
Selects the natural-action planner.
Paths
Ai Agent Workspace Root setting.
Path to the Allure results output folder.
Applitools API key for visual AI testing integration.
Path to the default properties files folder.
Path to the folder for downloaded files.
Path to the dynamic object repository folder.
Path to the execution summary report folder.
Path to the Extent reports output folder.
Path to the performance (Lighthouse) report output folder.
Path to the custom properties files folder.
Path to the META-INF services folder for custom service implementations.
Path to the test data files folder.
Path to the folder where recorded videos are saved.
Pattern
Allure link issue pattern setting.
Test Data Column Name Prefix setting.
Tinkey
Tinkey keyset Filename setting.
Tinkey kms credential Path setting.
Tinkey kms master Key Uri setting.
Tinkey kms server Type setting.
BrowserStack
Accept insecure SSL certificates.
BrowserStack access key for authentication.
Appium version to use on BrowserStack for mobile testing.
App name for uploading to BrowserStack.
Relative file path to the app for SHAFT/BrowserStack upload workflows.
Use a BrowserStack app URL for a previously uploaded app; takes precedence over remote mobileapp.
Enable BrowserStack Automation (SDK mode). Set to false to use legacy WebDriver URL mode.
Browser version, optional, uses random by default.
Build name to group test runs in the BrowserStack dashboard.
Path to a custom browserstack.yml configuration file. Overrides individual BrowserStack properties.
Use customID to test the latest uploaded version as the above url expires regularly.
Enable debug mode for BrowserStack.
Mobile device name for BrowserStack execution.
Set geolocation for BrowserStack tests.
Enable BrowserStack local testing.
Enable network logs capture on BrowserStack.
In case of Desktop web testing you must also set the targetOperatingSystem, and targetBrowserName.
Number of parallel sessions to run per platform when using the BrowserStack SDK.
Comma-separated list of platforms for cross-browser/cross-device parallel runs (SDK mode).
Mobile platform version for BrowserStack execution.
Project name to group builds in the BrowserStack dashboard.
Selenium version to use on BrowserStack.
BrowserStack username for authentication.
LambdaTest
Accept insecure SSL certificates on LambdaTest.
LambdaTest access key for authentication.
Appium version to use on LambdaTest for mobile testing.
Use appName and appRelativeFilePath to upload a new app file and test it
Enable app profiling during mobile testing.
Use appName and appRelativeFilePath to upload a new app file and test it
Use appUrl to test a previously uploaded app file.
Automatically accept alerts on mobile devices.
Automatically grant app permissions on mobile devices.
Browser version, optional, uses random by default.
Build name to group test runs in the LambdaTest dashboard.
Build name used in the LambdaTest SDK configuration. Use this instead of LambdaTest.build when using the LambdaTest SDK (automate-config.yml).
Enable console log capture on LambdaTest.
Custom app ID for testing a previously uploaded app by its custom identifier.
Enable debug mode (command logs) on LambdaTest.
Mobile device name for LambdaTest execution.
Lambda Test driver version setting.
Geolocation for test execution (e.g. US, IN).
Enable headless browser execution on LambdaTest.
Run tests on real mobile devices (as opposed to emulators/simulators).
Enable network logs capture on LambdaTest.
OS version for desktop browser testing on LambdaTest.
Mobile platform version for LambdaTest execution.
Project name to group builds in the LambdaTest dashboard.
Screen resolution for desktop browser testing (e.g. 1920x1080).
Lambda Test selenium version setting.
Timezone for test execution on LambdaTest (e.g. UTC+5:30).
Enable LambdaTest tunnel for testing locally hosted applications.
Name of the LambdaTest tunnel to use when LambdaTest.tunnel is enabled.
LambdaTest username for authentication.
Enable video recording on LambdaTest.
Enable visual logs (screenshots) on LambdaTest.
Enable W3C WebDriver protocol on LambdaTest.
Performance
Generate a performance report after Lighthouse execution.
Enable Lighthouse performance testing execution.
Port to use for Lighthouse performance testing.
TestNG
Set Data Provider Thread Count setting.
Set Group By Instances setting.
Set Parallel setting.
Set Parallel Mode setting.
Set Preserve Order setting.
ThreadCount is used as-is in case of STATIC mode. Total ThreadCount is automatically calculated for DYNAMIC mode; (Total ThreadCount = Number of available processor cores setThreadCount)
Set Verbose setting.
Test Suite Timeout in Minutes Default is 1440 minutes == 24 hours
Log4j
Appender console filter threshold level setting.
Appender console filter threshold type setting.
Appender console layout charset setting.
Appender console layout disable Ansi setting.
Appender console layout no Console No Ansi setting.
Appender console layout pattern setting.
Appender console layout type setting.
Appender console name setting.
Appender console type setting.
Appender file file Name setting.
Appender file filter threshold level setting.
Appender file filter threshold type setting.
Appender file layout charset setting.
Appender file layout pattern setting.
Appender file layout type setting.
Appender file name setting.
Appender file type setting.
Logger app level setting.
Logger app name setting.
Name setting.
Uses asynchronous appenders for console, file, and ReportPortal logging.
Pilot
comma-separated approved evidence categories
environment variable containing the Anthropic credential
Anthropic Messages endpoint
configured Anthropic model
explicit Anthropic endpoint processing location
Anthropic API contract version
circuit-open cooldown in seconds
failures required to open the circuit
whether local inference is approved
whether explicitly classified on-prem inference is approved
whether remote inference is approved
whether optional AI execution is enabled
environment variable containing the Gemini credential
Gemini models endpoint
configured Gemini model
explicit Gemini endpoint processing location
maximum concurrent calls per provider
maximum accepted provider-reported cost in USD
maximum estimated input tokens
maximum output tokens
maximum serialized request size
optional environment variable containing an on-prem Ollama gateway credential
optional Ollama gateway credential header
optional Ollama gateway credential prefix
Ollama chat endpoint
configured Ollama model
explicit Ollama endpoint processing location
environment variable containing the OpenAI credential
OpenAI Responses endpoint
configured OpenAI model
explicit OpenAI endpoint processing location
selected provider identifier
comma-separated structured or DOM attributes to redact
double-semicolon-separated custom regular expressions
comma-separated CSS selectors to redact
maximum provider execution attempts
whether optional external telemetry is enabled
maximum provider timeout in seconds