Ocaramba Timeout Settings: Complete Configuration Guide for Selenium Tests

Ocaramba defines seven configurable timeout settings—ShortTimeout (5 s), MediumTimeout (15 s), LongTimeout (30 s), RemoteWebDriverTimeout (60 s), ImplicitlyWaitMilliseconds (0 ms), plus IE‑specific BrowserAttachTimeout and FileUploadDialogTimeout—centrally in the BaseConfiguration class to standardize wait behavior across all Selenium WebDriver operations.

The open‑source accenture/ocaramba testing framework eliminates hard‑coded waits by exposing these values as static properties that read from the appSettings section of your configuration file. Understanding timeout settings in Ocaramba allows you to tune test stability and execution speed without modifying framework code.

Core Timeout Properties in BaseConfiguration

All timeout values are defined in OcarambaLite/BaseConfiguration.cs as static properties with sensible defaults. Values are expressed in seconds for UI waits and milliseconds for Selenium’s implicit wait mechanism.

  • ShortTimeout – Default: 5 seconds. Used for quick existence checks, such as verifying a banner appeared or confirming a file exists on disk.
  • MediumTimeout – Default: 15 seconds. The standard wait duration for element visibility, Ajax completion, and dropdown interactions.
  • LongTimeout – Default: 30 seconds. Reserved for lengthier operations including file downloads, large element collection retrieval, and full page loads.
  • RemoteWebDriverTimeout – Default: 60 seconds. Maximum time allowed for remote WebDriver instances (Chrome, Edge) to establish a session.
  • ImplicitlyWaitMilliseconds – Default: 0 milliseconds. Selenium’s built‑in implicit wait; Ocaramba defaults this to zero because the framework prefers explicit wait strategies.
  • BrowserAttachTimeout – IE‑only. Time permitted for the Internet Explorer driver to attach to an existing browser instance.
  • FileUploadDialogTimeout – IE‑only. Time allowed for the native file‑upload dialog to appear.

Configuring Timeouts in appsettings.json

Each property maps to a specific key in appsettings.json. Update these values to adjust behavior globally without recompiling.

{
  "appSettings": {
    "shortTimeout": "5",
    "mediumTimeout": "15",
    "longTimeout": "30",
    "remoteTimeout": "60",
    "ImplicitlyWaitMilliseconds": "0"
  }
}

The BaseConfiguration class reads these strings and parses them into the strongly‑typed static properties used throughout the framework.

How Timeout Settings Propagate Through the Framework

WebDriverExtensions for Element Waits

Extension methods in OcarambaLite/Extensions/WebDriverExtensions.cs consume the central timeout values for explicit waits. Methods such as IsElementPresent, WaitUntilElementIsNoLongerFound, and WaitForAjax accept a timeout parameter that typically defaults to one of the BaseConfiguration properties.

// Uses ShortTimeout for a quick presence check
bool bannerVisible = driver.IsElementPresent(
    new ElementLocator(By.Id("welcomeBanner")),
    BaseConfiguration.ShortTimeout);

WebElement Interactions

The Select wrapper in OcarambaLite/WebElements/Select.cs defaults to MediumTimeout for dropdown interactions. If you instantiate a Select object without specifying a custom wait, the framework automatically falls back to BaseConfiguration.MediumTimeout.

File System Operations

File helpers in OcarambaLite/Helpers/FilesHelper.cs rely on LongTimeout for polling operations such as waiting for downloads to complete or files to be renamed, while ShortTimeout handles quick existence checks.

// Waits up to LongTimeout seconds for the file to appear
FilesHelper.WaitForFileOfGivenName(
    BaseConfiguration.LongTimeout,
    "report.pdf",
    downloadFolder);

Remote Driver Initialization

When instantiating remote drivers, OcarambaLite/DriverContext.cs passes RemoteWebDriverTimeout directly to the WebDriver constructor, ensuring the session establishment respects your configured limit.

var chrome = new ChromeDriver(
    serviceChrome,
    chromeOptions,
    BaseConfiguration.RemoteWebDriverTimeout);

Practical Implementation Examples

The following patterns demonstrate idiomatic usage of Ocaramba’s timeout configuration:

// 1. Quick validation with ShortTimeout
bool isLoaded = driver.IsElementPresent(
    By.Id("spinner"),
    BaseConfiguration.ShortTimeout);

// 2. Dropdown selection defaults to MediumTimeout
var countrySelect = new Select(driver.FindElement(By.Id("country")));
countrySelect.SelectByText("Canada");

// 3. File download wait using LongTimeout
FilesHelper.WaitForFileOfGivenName(
    BaseConfiguration.LongTimeout,
    "export.xlsx",
    Environment.GetFolderPath(Environment.SpecialFolder.Downloads));

// 4. Remote driver with extended session timeout
var driver = new ChromeDriver(
    ChromeDriverService.CreateDefaultService(),
    new ChromeOptions(),
    BaseConfiguration.RemoteWebDriverTimeout);

Summary

  • Seven distinct timeouts are centralized in BaseConfiguration.cs: five universal timeouts (Short, Medium, Long, Remote, Implicit) and two IE‑specific settings.
  • Default values are 5 s, 15 s, 30 s, 60 s, and 0 ms respectively, balancing speed and stability for most test suites.
  • Configuration is externalized via appsettings.json keys (shortTimeout, mediumTimeout, longTimeout, remoteTimeout, ImplicitlyWaitMilliseconds).
  • Framework components automatically consume these values: WebDriverExtensions for element waits, Select for dropdowns, FilesHelper for disk operations, and DriverContext for driver instantiation.

Frequently Asked Questions

What is the default MediumTimeout value in Ocaramba?

The default MediumTimeout is 15 seconds. According to the source code in BaseConfiguration.cs, this value is used for standard UI interactions such as waiting for element visibility, Ajax completion, and dropdown population.

How do I change the timeout for file download waits?

Modify the longTimeout key in your appsettings.json file. The FilesHelper class in OcarambaLite/Helpers/FilesHelper.cs consumes BaseConfiguration.LongTimeout (default 30 s) for all file‑system polling operations, including WaitForFileOfGivenName.

Does Ocaramba use Selenium's implicit wait by default?

No. The ImplicitlyWaitMilliseconds property defaults to 0 milliseconds, meaning Selenium’s implicit wait is effectively disabled. The framework favors explicit waits via WebDriverExtensions to avoid unpredictable timing behavior.

Where are IE-specific timeout settings configured?

BrowserAttachTimeout and FileUploadDialogTimeout are defined in BaseConfiguration.cs but only apply when using the Internet Explorer driver. These properties map to appSettings keys and control how long the driver waits to attach to existing browser instances or for native file dialogs to appear.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →