# Ocaramba Timeout Settings: Complete Configuration Guide for Selenium Tests

> Master Ocaramba timeout settings for flawless Selenium tests. Explore ShortTimeout, MediumTimeout, LongTimeout, and more in our complete configuration guide for accenture/ocaramba.

- Repository: [Accenture/ocaramba](https://github.com/accenture/ocaramba)
- Tags: how-to-guide
- Published: 2026-02-23

---

**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`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/appsettings.json). Update these values to adjust behavior globally without recompiling.

```json
{
  "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`](https://github.com/accenture/ocaramba/blob/main/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.

```csharp
// 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`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/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.

```csharp
// 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`](https://github.com/accenture/ocaramba/blob/main/OcarambaLite/DriverContext.cs)** passes `RemoteWebDriverTimeout` directly to the WebDriver constructor, ensuring the session establishment respects your configured limit.

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

```

## Practical Implementation Examples

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

```csharp
// 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`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/appsettings.json) file. The `FilesHelper` class in [`OcarambaLite/Helpers/FilesHelper.cs`](https://github.com/accenture/ocaramba/blob/main/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`](https://github.com/accenture/ocaramba/blob/main/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.