An Overview Of Unit Testing With .NET Core

In this blog on.Net Core, we shall discuss unit testing for user interface (UI). It is a topic very common, and we will see how to do it here.


Selenium is a software-testing framework, quite portable and for web applications and there is a .NET port of it. Here we shall use the Selenium.WebDriver package, and one or more of the following, for different browsers:

Selenium.Chrome.WebDriver: for Chrome

Selenium.Firefox.WebDriver: for Firefox

Selenium.WebDriver.MicrosoftWebDriver: for IE and Edge

Selenium gives a “minimum” contract that works over all the browsers.

Here let’s discuss some examples of how it works. Let’s start with instantiating a driver:

using (var driver = (IWebDriver) new ChromeDriver(Environment.CurrentDirectory))




Take note of the Environment.CurrentDirectory parameter; it marks the path where the driver can find a chromedriver.exe file, or geckodriver.exe for Firefox or MicrosoftWebDriver.exe, in case of IE/Edge. These executables get added automatically by the Nuget packages. If you don’t remove the driver, the window will remain open after the unit test finishes. You also have a choice to Quit at any time.

Let’s now navigate to some page:




And get some element from its name:

var elm = driver.FindElement(By.Name(“q”));

Besides the name, you can also search by:

Id: By.Id

CSS class: By.ClassName

CSS selector: By.CssSelector

Tag name: By.TagName

Link text: By.LinkText

Partial link text: By.PartialLinkText

XPath: By.XPath

Once an element is found, its properties can be accessed:

var attr = elm.GetAttribute(“class”);

var css = elm.GetCssValue(“display”);

var prop = elm.GetProperty(“enabled”);

Then we can send it text strokes:

elm.SendKeys(“ core”);

Or click on it:


It is to be known that, page loading could take some time, so, you can configure the default time of waiting, before doing a GoToUrl:

var timeouts = driver.Manage().Timeouts();

timeouts.ImplicitWait = TimeSpan.FromSeconds(1);

timeouts.PageLoad = TimeSpan.FromSeconds(5);

ImplicitWait is only a time that Selenium awaits before searching an element.

If you have to wait for some period of time, like, till some AJAX request is done with, you can do the following:

var waitForElement = new WebDriverWait(driver, TimeSpan.FromSeconds(5));

var logo = waitForElement.Until(ExpectedConditions.ElementIsVisible(By.Id(“hplogo”)));

The condition is passed on to ExpectedConditions could be one of:



















You can see, there are several conditions that you can make use of. If the condition is not met and the timer expires, then the value returned is null.This is nice for your unit tests.

With this, we conclude.

Keep coding!

If you want to enhance yourself in basics and concepts with Dot Net Course and improve yourself through Dot NET training program; our institute, CRBtech Solutions would be of great help and support. We give a well-structured program for the best Dot Net Course. Among several good institutes of dot net training and placement in Pune, CRBtech has created a niche for itself.

Don't be shellfish...Buffer this pageEmail this to someoneDigg thisShare on FacebookShare on Google+Share on LinkedInPrint this pageShare on RedditPin on PinterestShare on StumbleUponTweet about this on TwitterShare on Tumblr

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>