{"id":14978799,"url":"https://github.com/accenture/ocaramba","last_synced_at":"2025-04-08T09:06:49.496Z","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":"2025-04-02T21:57:21.000Z","size":71418,"stargazers_count":280,"open_issues_count":6,"forks_count":133,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-04-08T09:06:43.188Z","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":"2025-03-31T08:32:30.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":1715,"total_committers":34,"mean_commits":50.44117647058823,"dds":0.2594752186588921,"last_synced_commit":"4e8e66a8415f3bcfb39aea4a61f3644906c53d20"},"previous_names":["objectivitybss/test.automation","objectivityltd/test.automation","objectivityltd/ocaramba"],"tags_count":53,"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":247809964,"owners_count":20999816,"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-09-24T13:58:25.623Z","updated_at":"2025-04-08T09:06:49.463Z","avatar_url":"https://github.com/Accenture.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Ocaramba\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=ZUJWZGNEczFZVFNVWUJvUHJ6Y0pYUTlnSG4rYnhKVXFUeSsrYzlTUEZIZz0tLWxZUStLVnNqWml6bXNpcm1FSUxMQ3c9PQ==--20fde38e51169fe9739fc60ce188f00ecdf0f1fe)](https://automate.browserstack.com/public-build/ZUJWZGNEczFZVFNVWUJvUHJ6Y0pYUTlnSG4rYnhKVXFUeSsrYzlTUEZIZz0tLWxZUStLVnNqWml6bXNpcm1FSUxMQ3c9PQ==--20fde38e51169fe9739fc60ce188f00ecdf0f1fe)\r\n[![Sauce Test Status](https://app.saucelabs.com/buildstatus/jraczek?auth=99f92a548ce2dd8fb1f203910a4d7d0f)](https://app.saucelabs.com/u/jraczek?auth=99f92a548ce2dd8fb1f203910a4d7d0f)\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\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- .NET Frameworks 4.7.2 and .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- 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- Possibility to take full desktop (only .NET Framework), save page source, more details [here](https://github.com/Accenture/Ocaramba/wiki/Screen-shots---full-desktop---selenium---PageSource-saving)\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- 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\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\t\t\r\n#### Where to start?\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- 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\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"}