I recently received the following email:
“I have gone through your video on How to run a Selenium Web driver test case with Sauce Labs but it was for Java. Can you please show [us] how to do the same using the Selenium C# .NET binding?” So today I’m going to show you how to run a C# Selenium script in Sauce labs.
For those of you that aren’t aware, Sauce Labs is the exclusive sponsor of my TestTalks podcast. Accordingly, I have a special code you can use to get 20 hours of free automation! Check out my SauceLabs page for more info.
Getting Started with Sauce Labs C Sharp
- First, log on to SauceLabs with your free account. (Check out my video on how to use my special SauceLabs promo offer.)
- https://saucelabs.com/login
- Under the Tools section, select the Getting Started button.

-
You’ll be presented with three options:
- Automated
- Mobile
- Manual
- Automated

- Select Automated
Now, all you need to do is follow this quick, four-step process:
Choose your language
- For this example, I’ll be using C#.NET, but Sauce Labs supports all the Selenium language bindings.
- Select the C#.NET option.
Setup Your Project
Open up a new project in Visual Studio.
- In the New Project screen, select a C# Class Library template.

- Name the project ExampleSauce and click OK.
- From the VST menu, choose Tools>Library Package Manager> Manage Nuget Package for Solution.
- In the Manage NuGet Packages screen, enter Selenium in the Search packages field.

- Click on the Install button for the Selenium WebDriver. Once it’s installed, do the same for Selenium WebDriver Support Classes.
- Next, search for Gallio and install Gallio & MbUnit.

- And Gallio Bundle

- Click Close in the Manage NuGet Packages window.
Start writing the C# tests
At the top under the using statements, add:
using Gallio.Framework;
using Gallio.Model;
using MbUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;

- In the RunInSauce project right before Class1, add the following:
[TestFixture]
[Header("browser", "version", "platform")]
[Row("chrome", "42", "Windows 7")]
[Row("chrome", "35", "linux")]

- Under the Class1 section, let’s add a method named SimpleTest and our test code. (This is for demonstration purposes only — there are better ways of doing this.)
[Test, Parallelizable]
public void SimpleTest(string browser, string version, string platform)
{
Uri commandExecutorUri = new Uri("http://ondemand.saucelabs.com/wd/hub");
DesiredCapabilities desiredCapabilites = new DesiredCapabilities(browser, version, Platform.CurrentPlatform);
desiredCapabilites.SetCapability("platform", platform);
desiredCapabilites.SetCapability("username", "yourseleniumusername");
desiredCapabilites.SetCapability("accessKey", "yourseleniumaccesskey");
desiredCapabilites.SetCapability("name", TestContext.CurrentContext.Test.Name);
var _Driver = new RemoteWebDriver(commandExecutorUri, desiredCapabilites);
_Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
// navigate to the page under test
_Driver.Navigate().GoToUrl("https://testguild.com/SeleniumTestPage.html");
// verify the page title is correct
Assert.Contains(_Driver.Title, "Selenium WebDriver Validation");
_Driver.Quit();
}
- Right click on the ExampleSauce project and select Properties.
- Click on Debug.
- Click on Start external program and navigate to Gallio.Icarus.exe in your VST projects packages>GallioBundle.3.4.14.0>bin directory. Mine was in:

-
Under the Command line arguments, enter the name of your namespace.dll

-
Click on F5 to build and debug the solution.
-
The Gallio Icarus runner will appear where you can run your tests.
-
Click on the Start button.

-
Your test should run and pass. You can tell by looking in the Gallio Test Report Execution Log tab:

-
You should also see the results when you login to Sauce Labs.

-
Clicking on each Session will bring up each individual run’s execution results, where you can see step-by-step results and timings as well as video playback.
