{"id":21729999,"url":"https://github.com/Accenture/Ocaramba","last_synced_at":"2025-07-18T19:32:07.701Z","repository":{"id":34820445,"uuid":"38807623","full_name":"Accenture/Ocaramba","owner":"Accenture","description":"C# Framework to automate tests using Selenium WebDriver","archived":false,"fork":false,"pushed_at":"2024-11-20T14:04:31.000Z","size":70271,"stargazers_count":277,"open_issues_count":5,"forks_count":129,"subscribers_count":69,"default_branch":"master","last_synced_at":"2024-11-20T14:29:02.083Z","etag":null,"topics":["chrome","data-driven","firefox","ie","mstest","nunit","parallel","safari","selenium-webdriver","specflow","test","test-automation","xunit"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Accenture.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-09T08:22:12.000Z","updated_at":"2024-11-20T14:04:35.000Z","dependencies_parsed_at":"2023-02-18T08:45:18.323Z","dependency_job_id":"da68e408-4ef8-4d24-b31b-9819b4c74a4b","html_url":"https://github.com/Accenture/Ocaramba","commit_stats":{"total_commits":1639,"total_committers":32,"mean_commits":51.21875,"dds":"0.22513727882855394","last_synced_commit":"fd4ad53944648717e5836ce27068050f1ea117cb"},"previous_names":["objectivitybss/test.automation","objectivityltd/test.automation","objectivityltd/ocaramba"],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2FOcaramba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2FOcaramba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2FOcaramba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2FOcaramba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Accenture","download_url":"https://codeload.github.com/Accenture/Ocaramba/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226438780,"owners_count":17625107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","data-driven","firefox","ie","mstest","nunit","parallel","safari","selenium-webdriver","specflow","test","test-automation","xunit"],"created_at":"2024-11-26T04:11:04.007Z","updated_at":"2025-07-18T19:32:07.683Z","avatar_url":"https://github.com/Accenture.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Ocaramba\r\n\r\n\u003cimg align=\"left\" src=\"https://user-images.githubusercontent.com/12324498/73060034-43ff2580-3e97-11ea-9100-748d0716eba7.png\"\u003e\r\n\r\n**Cross-Platform C# Framework to automate tests using Selenium WebDriver**\r\n\r\n[![Ocaramba Templates](https://img.shields.io/badge/get-Ocaramba_Templates-green.svg?color=4BC21F)](https://marketplace.visualstudio.com/items?itemName=Ocaramba.Ocaramba1)\r\n![Build status](https://github.com/Accenture/Ocaramba/actions/workflows/github-actions.yml/badge.svg)\r\n[![BrowserStack Status](https://automate.browserstack.com/badge.svg?badge_key=VS9mU0F0ZTZnKzBtbE0yb3pRU0ttVXlKaENnWEJMaDFCTlg2Q1UwcTR3az0tLTZqYjdxb3ZTNzEyN251MzN6ZXFHOHc9PQ==--31d75cad9077a32207ec613dd10072305b5323e9)](https://automate.browserstack.com/public-build/VS9mU0F0ZTZnKzBtbE0yb3pRU0ttVXlKaENnWEJMaDFCTlg2Q1UwcTR3az0tLTZqYjdxb3ZTNzEyN251MzN6ZXFHOHc9PQ==--31d75cad9077a32207ec613dd10072305b5323e9)\r\n\r\nTest Framework was designed in Objectivity to propose a common way how people should create Selenium WebDriver tests.\r\n\r\n\u003cimg align=\"left\" src=\"https://user-images.githubusercontent.com/12324498/73060119-73159700-3e97-11ea-99d3-1b21584c6baa.png\"\u003e\r\nProject API documentation can be found here: http://Accenture.github.io/Ocaramba\r\n\r\nAI generated documentation [DeepWiki](https://deepwiki.com/Accenture/Ocaramba)\u003cbr /\u003e\u003cbr /\u003e\r\n\r\n\u003cimg align=\"left\" src=\"https://github.com/Accenture/Ocaramba/wiki/images/ocarambadiagram.png\"\u003e\r\n\r\n**It provides the following features:**\r\n\r\n- .NET 8.0 supported\r\n- Cross-Platform Windows, Linux and macOS systems supported\r\n- Supports continuous integration tools like Azure DevOps, Teamcity, Jenkins and others.\r\n- Ready for parallel tests execution, more details [here](https://github.com/Accenture/Ocaramba/wiki/Selenium%20Parallel%20tests%20execution)\r\n- Possibility to use MSTest, NUnit or xUNIT framework\r\n- Specflow ready\r\n- Written entirely in C#\r\n- Contains example projects how to use it\r\n- Allows using Chrome, Firefox, Edge Chromium, Safari or Internet Explorer\r\n- Supports Appium-based Android UI tests, more details [here](https://github.com/Accenture/Ocaramba/wiki/Ocaramba-framework-with-Appium)\r\n- Overrides browser profile preferences, pass arguments to browsers, installs browser extensions, loading default firefox profile, Headless mode, more details [here](https://github.com/Accenture/Ocaramba/wiki/Override-browser-profile-preferences,-install-browser-extensions,-Headless-mode)\r\n- Extends Webdriver by additional methods like JavaScriptClick, WaitForAjax, WaitForAngular, etc., more details [here](http://Accenture.github.io/Ocaramba/html/d51aa97e-08b5-c0b6-6987-c10545a64ebd.htm)\r\n- Automatically waits when locating element for specified time and conditions, GetElement method instead of Selenium FindElement, more details [here](http://Accenture.github.io/Ocaramba/html/3c09ca99-f931-c6c9-98fc-194eff6500ff.htm)\r\n- Page Object Pattern\r\n- Support for [SeleniumGrid](https://github.com/SeleniumHQ/selenium/wiki/Grid2), [Cross browser parallel test execution](https://github.com/Accenture/Ocaramba/wiki/Cross-browser-parallel-test-execution-with-SeleniumGrid-or-testing-Cloud-Providers) with [SauceLab](https://saucelabs.com/), [TestingBot](https://testingbot.com) and [Browserstack](https://www.browserstack.com/) more details [here](https://github.com/Accenture/Ocaramba/wiki/Selenium-Grid-support), Advanced Browser Capabilities and Options more details [here](https://github.com/Accenture/Ocaramba/wiki/Advanced-Browser-Capabilities-and-options)\r\n- More common locators, e.g: `\"//*[@title='{0}' and @ms.title='{1}']\"`, more details [here](https://github.com/Accenture/Ocaramba/wiki/More%20common%20locators)\r\n- Verify - asserts without stop tests, more details [here](https://github.com/Accenture/Ocaramba/wiki/Verify-asserts-without-stop-tests)\r\n- Measures average and 90 Percentile action times, more details [here](https://github.com/Accenture/Ocaramba/wiki/Performance%20measures)\r\n- DataDriven tests from Xml, Csv and Excel files for NUnit and Xml, Csv for MSTest with examples, more details [NUnit](https://github.com/Accenture/Ocaramba/wiki/NUnit-DataDriven-tests-from-Xml,-CSV-and-Excel-files), [MsTest](https://github.com/Accenture/Ocaramba/wiki/MsTest-DataDriven-tests-from-Xml-and-CSV-files)\r\n- Visual Testing - browser screenshot of the element, more details [here](https://github.com/Accenture/Ocaramba/wiki/Visual-Testing)\r\n- Logging with NLog, EventFiringWebDriver logs, more details [here](https://github.com/Accenture/Ocaramba/wiki/Logging)\r\n- Files downloading (Firefox, Chrome), more details [here](https://github.com/Accenture/Ocaramba/wiki/Downloading%20files)\r\n- Possibility to send [SQL](http://Accenture.github.io/Ocaramba/html/730c92c7-831a-4449-3938-16540cf259b8.htm) or [MDX](http://Accenture.github.io/Ocaramba/html/7de319df-06eb-1c79-8c2d-9c60aaf3ab85.htm) queries (only .NET Framework)\r\n- Possibility of debugging framework installed from nuget package with [sourcelink](https://github.com/dotnet/sourcelink), more details [here](https://github.com/Accenture/Ocaramba/wiki/Debugging-Test.Automation-framework).\r\n- AngularJS support, more details [here](https://github.com/Accenture/Ocaramba/wiki/Angular-support).\r\n- Possibility to check for JavaScript errors from the browser, more details [here](https://github.com/Accenture/Ocaramba/wiki/Verifying-Javascript-Errors-from-browser).\r\n- Instruction on how to run Ocaramba tests with Docker container, more details [here](https://github.com/Accenture/Ocaramba/wiki/Run-Ocaramba-tests-with-Docker-container).\r\n- ExtentReports support, more details [here](https://github.com/Accenture/Ocaramba/wiki/ExtentReports-Support).\r\n\r\nFor all documentation, visit the [Ocaramba Wiki](https://github.com/Accenture/Ocaramba/wiki).\r\n\r\nProjects examples of using Test Framework :\r\n\r\n- Ocaramba.Tests.Angular for AngularJS\r\n- Ocaramba.Tests.Features for Specflow\r\n- Ocaramba.Tests.MsTest for MsTest\r\n- Ocaramba.Tests.NUnit for NUnit\r\n- Ocaramba.Tests.NUnitExtentReports for NUnit featuring test execution HTML report based on ExtentReports framework\r\n- Ocaramba.Tests.xUnit for xUnit\r\n- Ocaramba.Tests.PageObjects for Page Object Pattern\r\n- Ocaramba.Documentation.shfbproj for building API documentation\r\n- Ocaramba.Tests.CloudProviderCrossBrowser for cross browser parallel test execution with BrowserStack\\SauceLabs\\TestingBot\\SeleniumGrid\r\n- Ocaramba.UnitTests for unit test of framework\r\n- Ocaramba.Tests.Appium for Appium-based Android UI tests\r\n\r\nNUnit Example Test:\r\n\r\n```csharp\r\nnamespace Ocaramba.Tests.NUnit.Tests\r\n{\r\n    using global::NUnit.Framework;\r\n\r\n    using Ocaramba.Tests.PageObjects.PageObjects.TheInternet;\r\n\r\n    [Parallelizable(ParallelScope.Fixtures)]\r\n    public class JavaScriptAlertsTestsNUnit : ProjectTestBase\r\n    {\r\n        [Test]\r\n        public void ClickJsAlertTest()\r\n        {\r\n            var internetPage = new InternetPage(this.DriverContext).OpenHomePage();\r\n            var jsAlertsPage = internetPage.GoToJavaScriptAlerts();\r\n            jsAlertsPage.OpenJsAlert();\r\n            jsAlertsPage.AcceptAlert();\r\n            Assert.AreEqual(\"You successfuly clicked an alert\", jsAlertsPage.ResultText);\r\n        }\r\n    }\r\n}\r\n\r\n```\r\n\r\nNUnit Example Page Object:\r\n\r\n```csharp\r\nnamespace Ocaramba.Tests.PageObjects.PageObjects.TheInternet\r\n{\r\n    using System;\r\n    using System.Globalization;\r\n\r\n    using NLog;\r\n\r\n    using Ocaramba;\r\n    using Ocaramba.Extensions;\r\n    using Ocaramba.Types;\r\n    using Ocaramba.Tests.PageObjects;\r\n\r\n    public class InternetPage : ProjectPageBase\r\n    {\r\n        private static readonly Logger Logger = LogManager.GetCurrentClassLogger();\r\n\r\n        /// \u003csummary\u003e\r\n        /// Locators for elements\r\n        /// \u003c/summary\u003e\r\n        private readonly ElementLocator\r\n            linkLocator = new ElementLocator(Locator.CssSelector, \"a[href='/{0}']\");\r\n\r\n        public InternetPage(DriverContext driverContext) : base(driverContext)\r\n        {\r\n        }\r\n\r\n        public JavaScriptAlertsPage GoToJavaScriptAlerts()\r\n        {\r\n            this.Driver.GetElement(this.linkLocator.Format(\"javascript_alerts\")).Click();\r\n            return new JavaScriptAlertsPage(this.DriverContext);\r\n        }\r\n    }\r\n}\r\n```\r\n\r\n#### Where to start?\r\n\r\n---\r\n\r\n- See [Getting started](https://github.com/Accenture/Ocaramba/wiki/Getting%20started).\r\n\r\nCheckout the code or get it from [nuget.org](https://www.nuget.org/packages?q=Ocaramba)\r\n\r\n- Ocaramba ![NuGet Downloads](https://img.shields.io/nuget/dt/Ocaramba) ![NuGet Version](https://img.shields.io/nuget/v/Ocaramba)\r\n- OcarambaLite ![NuGet Downloads](https://img.shields.io/nuget/dt/OcarambaLite) ![NuGet Version](https://img.shields.io/nuget/v/OcarambaLite) - lighten version without selenium drivers\r\n\r\nor download Ocaramba Visual Studio templates [![Ocaramba Templates](https://img.shields.io/badge/get-Ocaramba_Templates-green.svg?color=4BC21F)](https://marketplace.visualstudio.com/items?itemName=Ocaramba.Ocaramba1)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAccenture%2FOcaramba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAccenture%2FOcaramba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAccenture%2FOcaramba/lists"}