Variable: presets
constpresets:object
Built-in configuration presets.
Type Declaration
ci
ci:
object
CI preset — shorter timeouts and debug-friendly defaults for CI pipelines.
Remarks
Reduces ui5WaitTimeout from 30 s to 15 s and controlDiscoveryTimeout
from 10 s to 5 s. Enables failure artifact capture. Reduces feedback loop
time in CI without sacrificing reliability for well-behaved SAP apps.
Example
import { defineConfig, presets } from 'playwright-praman';
export default defineConfig({ ...presets.ci });
ci.ai?
optionalai?:object
ci.ai.anthropicApiKey?
optionalanthropicApiKey?:string
ci.ai.apiKey?
optionalapiKey?:string
ci.ai.apiVersion?
optionalapiVersion?:string
ci.ai.deployment?
optionaldeployment?:string
ci.ai.endpoint?
optionalendpoint?:string
ci.ai.maxTokens?
optionalmaxTokens?:number
ci.ai.model?
optionalmodel?:string
ci.ai.provider?
optionalprovider?:"openai"|"azure-openai"|"anthropic"
ci.ai.temperature?
optionaltemperature?:number
ci.auth?
optionalauth?:object
ci.auth.baseUrl
baseUrl:
string
ci.auth.client?
optionalclient?:string
ci.auth.language?
optionallanguage?:string
ci.auth.password?
optionalpassword?:string
ci.auth.strategy?
optionalstrategy?:"custom"|"btp-saml"|"basic"|"office365"
Auth strategy for SAP login.
Remarks
basic: On-premise form-based login (onprem-strategy)btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)office365: Microsoft 365 / Azure AD SSO (office365-strategy)custom: User-provided login function
For API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.
ci.auth.username?
optionalusername?:string
ci.captureFailureArtifacts?
optionalcaptureFailureArtifacts?:boolean
Whether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.
Remarks
When true (default), the failure artifacts fixture automatically attaches
a screenshot (PNG), UI5 control tree snapshot (JSON), and page metadata (JSON)
to the test report on any test failure. Set to false to disable.
ci.controlDiscoveryTimeout?
optionalcontrolDiscoveryTimeout?:number
ci.controlTreeCapture?
optionalcontrolTreeCapture?:object
ci.controlTreeCapture.enabled?
optionalenabled?:boolean
ci.controlTreeCapture.maxControls?
optionalmaxControls?:number
ci.controlTreeCapture.maxDepth?
optionalmaxDepth?:number
ci.defaultMatchSubclasses?
optionaldefaultMatchSubclasses?:boolean
Default value for matchSubclasses on selectors that don't specify it.
ci.discoveryStrategies?
optionaldiscoveryStrategies?: ("direct-id"|"recordreplay"|"registry")[]
ci.ignoreAutoWaitUrls?
optionalignoreAutoWaitUrls?:string[]
ci.interactionStrategy?
optionalinteractionStrategy?:"ui5-native"|"dom-first"|"opa5"
ci.logLevel?
optionallogLevel?:"error"|"debug"|"warn"|"info"|"verbose"
ci.odataTracing?
optionalodataTracing?:object
ci.odataTracing.enabled?
optionalenabled?:boolean
ci.odataTracing.urlPatterns?
optionalurlPatterns?:string[]
ci.opa5?
optionalopa5?:object
ci.opa5.autoWait?
optionalautoWait?:boolean
ci.opa5.debug?
optionaldebug?:boolean
ci.opa5.interactionTimeout?
optionalinteractionTimeout?:number
ci.preferVisibleControls?
optionalpreferVisibleControls?:boolean
ci.selectors?
optionalselectors?:object
ci.selectors.defaultTimeout?
optionaldefaultTimeout?:number
Deprecated
Use top-level controlDiscoveryTimeout instead.
ci.selectors.preferVisibleControls?
optionalpreferVisibleControls?:boolean
ci.selectors.skipStabilityWait?
optionalskipStabilityWait?:boolean
ci.skipStabilityWait?
optionalskipStabilityWait?:boolean
ci.telemetry?
optionaltelemetry?:object
ci.telemetry.endpoint?
optionalendpoint?:string
ci.telemetry.exporter?
optionalexporter?:"otlp"|"azure-monitor"|"jaeger"
ci.telemetry.openTelemetry?
optionalopenTelemetry?:boolean
ci.telemetry.serviceName?
optionalserviceName?:string
ci.ui5WaitTimeout?
optionalui5WaitTimeout?:number
debug
debug:
object
Debug preset — verbose logging, longer timeouts for local investigation.
Example
import { defineConfig, presets } from 'playwright-praman';
export default defineConfig({ ...presets.debug });
debug.ai?
optionalai?:object
debug.ai.anthropicApiKey?
optionalanthropicApiKey?:string
debug.ai.apiKey?
optionalapiKey?:string
debug.ai.apiVersion?
optionalapiVersion?:string
debug.ai.deployment?
optionaldeployment?:string
debug.ai.endpoint?
optionalendpoint?:string
debug.ai.maxTokens?
optionalmaxTokens?:number
debug.ai.model?
optionalmodel?:string
debug.ai.provider?
optionalprovider?:"openai"|"azure-openai"|"anthropic"
debug.ai.temperature?
optionaltemperature?:number
debug.auth?
optionalauth?:object
debug.auth.baseUrl
baseUrl:
string
debug.auth.client?
optionalclient?:string
debug.auth.language?
optionallanguage?:string
debug.auth.password?
optionalpassword?:string
debug.auth.strategy?
optionalstrategy?:"custom"|"btp-saml"|"basic"|"office365"
Auth strategy for SAP login.
Remarks
basic: On-premise form-based login (onprem-strategy)btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)office365: Microsoft 365 / Azure AD SSO (office365-strategy)custom: User-provided login function
For API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.
debug.auth.username?
optionalusername?:string
debug.captureFailureArtifacts?
optionalcaptureFailureArtifacts?:boolean
Whether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.
Remarks
When true (default), the failure artifacts fixture automatically attaches
a screenshot (PNG), UI5 control tree snapshot (JSON), and page metadata (JSON)
to the test report on any test failure. Set to false to disable.
debug.controlDiscoveryTimeout?
optionalcontrolDiscoveryTimeout?:number
debug.controlTreeCapture?
optionalcontrolTreeCapture?:object
debug.controlTreeCapture.enabled?
optionalenabled?:boolean
debug.controlTreeCapture.maxControls?
optionalmaxControls?:number
debug.controlTreeCapture.maxDepth?
optionalmaxDepth?:number
debug.defaultMatchSubclasses?
optionaldefaultMatchSubclasses?:boolean
Default value for matchSubclasses on selectors that don't specify it.
debug.discoveryStrategies?
optionaldiscoveryStrategies?: ("direct-id"|"recordreplay"|"registry")[]
debug.ignoreAutoWaitUrls?
optionalignoreAutoWaitUrls?:string[]
debug.interactionStrategy?
optionalinteractionStrategy?:"ui5-native"|"dom-first"|"opa5"
debug.logLevel?
optionallogLevel?:"error"|"debug"|"warn"|"info"|"verbose"
debug.odataTracing?
optionalodataTracing?:object
debug.odataTracing.enabled?
optionalenabled?:boolean
debug.odataTracing.urlPatterns?
optionalurlPatterns?:string[]
debug.opa5?
optionalopa5?:object
debug.opa5.autoWait?
optionalautoWait?:boolean
debug.opa5.debug?
optionaldebug?:boolean
debug.opa5.interactionTimeout?
optionalinteractionTimeout?:number
debug.preferVisibleControls?
optionalpreferVisibleControls?:boolean
debug.selectors?
optionalselectors?:object
debug.selectors.defaultTimeout?
optionaldefaultTimeout?:number
Deprecated
Use top-level controlDiscoveryTimeout instead.
debug.selectors.preferVisibleControls?
optionalpreferVisibleControls?:boolean
debug.selectors.skipStabilityWait?
optionalskipStabilityWait?:boolean
debug.skipStabilityWait?
optionalskipStabilityWait?:boolean
debug.telemetry?
optionaltelemetry?:object
debug.telemetry.endpoint?
optionalendpoint?:string
debug.telemetry.exporter?
optionalexporter?:"otlp"|"azure-monitor"|"jaeger"
debug.telemetry.openTelemetry?
optionalopenTelemetry?:boolean
debug.telemetry.serviceName?
optionalserviceName?:string
debug.ui5WaitTimeout?
optionalui5WaitTimeout?:number
Example
import { presets } from 'playwright-praman';
console.log(presets.ci.ui5WaitTimeout); // 15000