https://github.com/accenture/ocaramba
C# Framework to automate tests using Selenium WebDriver
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
C# Framework to automate tests using Selenium WebDriver
Basic Info
Statistics
- Stars: 281
- Watchers: 58
- Forks: 134
- Open Issues: 2
- Releases: 59
Topics
Metadata Files
README.md
Ocaramba

Cross-Platform C# Framework to automate tests using Selenium WebDriver
Test Framework was designed in Objectivity to propose a common way how people should create Selenium WebDriver tests.
Project API documentation can be found here: http://Accenture.github.io/Ocaramba
AI generated documentation DeepWiki

It provides the following features:
- .NET 8.0 supported
- Cross-Platform Windows, Linux and macOS systems supported
- Supports continuous integration tools like Azure DevOps, Teamcity, Jenkins and others.
- Ready for parallel tests execution, more details here
- Possibility to use MSTest, NUnit or xUNIT framework
- Specflow ready
- Written entirely in C#
- Contains example projects how to use it
- Allows using Chrome, Firefox, Edge Chromium, Safari or Internet Explorer
- Supports Appium-based Android UI tests, more details here
- Overrides browser profile preferences, pass arguments to browsers, installs browser extensions, loading default firefox profile, Headless mode, more details here
- Extends Webdriver by additional methods like JavaScriptClick, WaitForAjax, WaitForAngular, etc., more details here
- Automatically waits when locating element for specified time and conditions, GetElement method instead of Selenium FindElement, more details here
- Page Object Pattern
- Support for SeleniumGrid, Cross browser parallel test execution with SauceLab, TestingBot and Browserstack more details here, Advanced Browser Capabilities and Options more details here
- More common locators, e.g:
"//*[@title='{0}' and @ms.title='{1}']", more details here - Verify - asserts without stop tests, more details here
- Measures average and 90 Percentile action times, more details here
- DataDriven tests from Xml, Csv and Excel files for NUnit and Xml, Csv for MSTest with examples, more details NUnit, MsTest
- Visual Testing - browser screenshot of the element, more details here
- Logging with NLog, EventFiringWebDriver logs, more details here
- Files downloading (Firefox, Chrome), more details here
- Possibility to send SQL or MDX queries (only .NET Framework)
- Possibility of debugging framework installed from nuget package with sourcelink, more details here.
- AngularJS support, more details here.
- Possibility to check for JavaScript errors from the browser, more details here.
- Instruction on how to run Ocaramba tests with Docker container, more details here.
- ExtentReports support, more details here.
For all documentation, visit the Ocaramba Wiki.
Projects examples of using Test Framework :
- Ocaramba.Tests.Angular for AngularJS
- Ocaramba.Tests.Features for Specflow
- Ocaramba.Tests.MsTest for MsTest
- Ocaramba.Tests.NUnit for NUnit
- Ocaramba.Tests.NUnitExtentReports for NUnit featuring test execution HTML report based on ExtentReports framework
- Ocaramba.Tests.xUnit for xUnit
- Ocaramba.Tests.PageObjects for Page Object Pattern
- Ocaramba.Documentation.shfbproj for building API documentation
- Ocaramba.Tests.CloudProviderCrossBrowser for cross browser parallel test execution with BrowserStack\SauceLabs\TestingBot\SeleniumGrid
- Ocaramba.UnitTests for unit test of framework
- Ocaramba.Tests.Appium for Appium-based Android UI tests
NUnit Example Test:
```csharp namespace Ocaramba.Tests.NUnit.Tests { using global::NUnit.Framework;
using Ocaramba.Tests.PageObjects.PageObjects.TheInternet;
[Parallelizable(ParallelScope.Fixtures)]
public class JavaScriptAlertsTestsNUnit : ProjectTestBase
{
[Test]
public void ClickJsAlertTest()
{
var internetPage = new InternetPage(this.DriverContext).OpenHomePage();
var jsAlertsPage = internetPage.GoToJavaScriptAlerts();
jsAlertsPage.OpenJsAlert();
jsAlertsPage.AcceptAlert();
Assert.AreEqual("You successfuly clicked an alert", jsAlertsPage.ResultText);
}
}
}
```
NUnit Example Page Object:
```csharp namespace Ocaramba.Tests.PageObjects.PageObjects.TheInternet { using System; using System.Globalization;
using NLog;
using Ocaramba;
using Ocaramba.Extensions;
using Ocaramba.Types;
using Ocaramba.Tests.PageObjects;
public class InternetPage : ProjectPageBase
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
/// <summary>
/// Locators for elements
/// </summary>
private readonly ElementLocator
linkLocator = new ElementLocator(Locator.CssSelector, "a[href='/{0}']");
public InternetPage(DriverContext driverContext) : base(driverContext)
{
}
public JavaScriptAlertsPage GoToJavaScriptAlerts()
{
this.Driver.GetElement(this.linkLocator.Format("javascript_alerts")).Click();
return new JavaScriptAlertsPage(this.DriverContext);
}
}
} ```
Where to start?
- See Getting started.
Checkout the code or get it from nuget.org
- Ocaramba
- OcarambaLite
- lighten version without selenium drivers
Owner
- Name: Accenture
- Login: Accenture
- Kind: organization
- Website: https://accenture.github.io
- Repositories: 185
- Profile: https://github.com/Accenture
Accenture Github site
GitHub Events
Total
- Create event: 140
- Issues event: 3
- Release event: 20
- Watch event: 5
- Delete event: 142
- Member event: 1
- Issue comment event: 480
- Push event: 431
- Gollum event: 16
- Pull request event: 223
- Fork event: 5
Last Year
- Create event: 140
- Issues event: 3
- Release event: 20
- Watch event: 5
- Delete event: 142
- Member event: 1
- Issue comment event: 480
- Push event: 431
- Gollum event: 16
- Pull request event: 223
- Fork event: 5
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Jakub Raczek | j****k@o****k | 1,390 |
| dependabot[bot] | 4****] | 96 |
| Tomasz Fajks | t****s@o****k | 76 |
| Maciej Antosiak | m****k@o****k | 75 |
| pawelstryczek | p****k@g****m | 40 |
| pstryczek | p****k@o****k | 26 |
| askoczypiec | a****c@o****k | 26 |
| tomasz bien | t****n@o****k | 24 |
| Jakub Raczek | j****k@a****m | 21 |
| tomasz.bien@gmail.com | t****n@g****m | 9 |
| mwyrodek | w****j@g****m | 9 |
| Wojciech Miodek | w****k@o****k | 8 |
| Tomasz Fajks | f****z@g****m | 8 |
| Maksymilian Bahr | m****r@o****k | 6 |
| Greg Pakes | g****s@i****k | 6 |
| Dominik Baran | d****n@o****k | 6 |
| amucha | a****a@o****k | 6 |
| Bartosz Glubiak | b****k@g****m | 5 |
| spacia | s****a@o****k | 5 |
| Marta Nowik | m****k@o****k | 3 |
| AgaKosc | a****c@g****m | 3 |
| Bartosz Glubiak | b****k@r****m | 2 |
| Patryk Kulecki | p****i@o****k | 2 |
| Aleksandra Skoczypiec | o****c@g****m | 1 |
| kris lemoine | k****e@a****e | 1 |
| TestAutomationGroup | T****p@o****k | 1 |
| Rafal Szkudlarek | r****k@o****k | 1 |
| Anna Mikołajczyk | a****k@o****k | 1 |
| Aleksandra Skoczypiec WorkAdmin | a****a@o****k | 1 |
| Jasper | k****e | 1 |
| and 3 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 49
- Total pull requests: 302
- Average time to close issues: 4 months
- Average time to close pull requests: 26 days
- Total issue authors: 29
- Total pull request authors: 14
- Average comments per issue: 2.16
- Average comments per pull request: 2.57
- Merged pull requests: 134
- Bot issues: 2
- Bot pull requests: 192
Past Year
- Issues: 2
- Pull requests: 209
- Average time to close issues: 6 days
- Average time to close pull requests: 7 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 3.55
- Merged pull requests: 76
- Bot issues: 2
- Bot pull requests: 160
Top Authors
Issue Authors
- jude-o (4)
- MikeWilliams-UK (3)
- artkpv (3)
- arkadiyala (3)
- vamsitp (3)
- mvaddiboina (3)
- TheXby (2)
- dependabot[bot] (2)
- maharatha (2)
- csvipin31 (2)
- edo248 (2)
- mattpickle (2)
- gregpakes (2)
- AutomateThatOne (1)
- SayantaniRs (1)
Pull Request Authors
- dependabot[bot] (192)
- raczeja (86)
- gregpakes (5)
- tbien (3)
- bglubiak (3)
- kf-patrykkulecki (2)
- maciejjerzyantosiak (2)
- tfajks (2)
- Shofiqulqa (2)
- urbanmichal (1)
- martanowik (1)
- kreeke (1)
- rwozniakowski (1)
- amikolajczyk (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Microsoft.SourceLink.GitHub 1.1.1 development
- StyleCop.Analyzers 1.1.118 development
- Microsoft.AnalysisServices.AdomdClient.retail.amd64 19.42.0.4
- Microsoft.Extensions.Configuration 3.1.2
- Microsoft.Extensions.Configuration.Json 3.1.2
- Microsoft.PowerShell.Commands.Diagnostics 6.2.1
- Microsoft.PowerShell.SDK 6.2.1
- Microsoft.WSMan.Management 6.2.1
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- System.Data.Common 4.3.0
- System.Data.SqlClient 4.8.3
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- EWSoftware.SHFB 2021.4.9
- EWSoftware.SHFB.NETCore 4.5.1
- EWSoftware.SHFB.NETFramework 4.8.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NUnit 3.13.3
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NUnit 3.13.3
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- BoDi 1.5.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- SpecFlow 3.9.22
- SpecFlow.NUnit 3.9.22
- SpecFlow.Tools.MsBuild.Generation 3.9.22
- Appveyor.TestLogger 2.0.0
- MSTest.TestAdapter 2.2.8
- MSTest.TestFramework 2.2.10
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- Selenium.WebDriver.IEDriver 4.2.0
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
- Microsoft.NET.Test.Sdk 16.8.3
- Microsoft.TestPlatform.TestHost 17.1.0
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NPOI 2.5.6
- NUnit 3.13.3
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- ExtentReports 4.1.0
- Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
- Microsoft.NET.Test.Sdk 16.8.3
- Microsoft.TestPlatform.TestHost 17.1.0
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NPOI 2.5.6
- NUnit 3.13.3
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- System.Configuration.ConfigurationManager 4.7.0
- xunit.runner.console 2.4.1 development
- xunit.runner.visualstudio 2.4.3 development
- Appveyor.TestLogger 2.0.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- System.Configuration.ConfigurationManager 4.7.0
- xunit 2.4.1
- xunit.abstractions 2.0.3
- xunit.assert 2.4.1
- xunit.extensibility.execution 2.4.1
- NUnit3TestAdapter 4.2.1 development
- Appveyor.TestLogger 2.0.0
- Magick.NET-Q16-AnyCPU 10.1.0
- Microsoft.NET.Test.Sdk 16.8.3
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- NUnit 3.13.3
- NUnit.Runners 3.12.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- Selenium.WebDriver.ChromeDriver 102.0.5005.6102
- Selenium.WebDriver.GeckoDriver 0.31.0
- System.Configuration.ConfigurationManager 4.7.0
- Microsoft.SourceLink.GitHub 1.1.1 development
- StyleCop.Analyzers 1.1.118 development
- Microsoft.Extensions.Configuration 3.1.2
- Microsoft.Extensions.Configuration.Json 3.1.2
- Microsoft.PowerShell.Commands.Diagnostics 6.2.1
- Microsoft.PowerShell.SDK 6.2.1
- Microsoft.WSMan.Management 6.2.1
- NLog 4.7.14
- NLog.Web.AspNetCore 4.14.0
- Selenium.Support 4.2.0
- Selenium.WebDriver 4.2.0
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- mcr.microsoft.com/dotnet/core/sdk 3.1 build
- ocaramba/selenium latest