How To Set Up Selenium on Visual Studio
What Is Visual Studio?
Visual Studio is an IDE developed by Microsoft. Its popularity comes from offering unique features such as cloud connectivity, supported extensions, easy debugging, collaboration, deployment, and version control integration, among others. Visual Studio is available for both Windows and Mac. It can be used for mobile, web, cloud, desktop applications, and gaming application development.
Visual Studio is available in both Free and Paid versions. The free version comes with basic features, whereas the paid version comes with enterprise features.
Note: Do not confuse Visual Studio with Visual Studio Code. Visual Studio is a complete IDE, and Visual Studio Code is an editor.
Benefits of Visual Studio
- Easy to Install: Visual studio is easy to install. It comes with a platform-specific installer. Simply follow the on-screen instructions during installation.
- Easy to Set up: Visual Studio comes with default templates. To create a new project, a user can choose from many available templates. The IDE will do the basic configuration to get it ready for usage.
- Extendable: Visual Studio supports thousands of extensions. Just hook into the IDE and customize them.
- IntelliSense: Visual Studio supports modern IntelliSense for many languages, which makes coding easier.
- Version Control: Users can integrate version control tools like Git and easily manage them.
- Live Share Support: Users can share their code in real-time which facilitates collaboration.
- Testing: Visual Studio makes Test Driven Development easier with its built-in testing tools. Users can write unit and integration tests quickly.
Note: To integrate the BDD framework into Selenium tests, integrate with SpecFlow.
- Cloud Support: Integrate this IDE with cloud providers such as Azure, making development and deployment more straightforward and faster.
- Developer Friendly: Visual Studio offers various features for development such as easy refactoring, code clean up, etc
Setting Up Selenium and Visual Studio
To set up Selenium C# with Visual Studio, just follow the steps below:
- Install Visual Studio
- Create NUnit Project
- Add Selenium libraries
Install Visual Studio
Step 1: Navigate to Visual Studio Download Webpage and download the installer.
Note: The community edition is free. If someone has already paid for the license, they can install Visual Studio Professional or Enterprise Edition.
Step 2: Start the installer and choose the desired option. For Selenium users, C# Test, the Asp.Net, and web development should be good enough.
Step 3: Wait for the installation to finish. The program may ask the user to restart the system.
Step 4: After restart, choose the desired theme. After this, Visual Studio will begin its first time setup.
Create New Project
C#, Selenium, and NUnit comprise the most used combination for end-to-end automation tests.
Step 1: Click on Create new Project.
Note: On the Start Screen of Visual Studio, create a new project by navigating menu File > New > Project.
Step 2: Click on Create NUnit Project, which emerges from the Create New Project pop-up. Look for NUnit Project with .Net Core. Click on Next.
Step 3: Configure your project. Specify project name, location, and solution name. Click Next to Continue.
Step 4: Choose the latest version of Target Framework. In this case, it’s .Net Core 5.0. Select that and click on Create.
Add Selenium Libraries and Drivers
Having created the C# and NUnit Project, users need to add Selenium libraries and browser-specific drivers for End to End testing automation.
Step 1: Add Selenium Webdriver NuGget package.
From the Visual Studio Tools menu, navigate to NuGet package manager and then click on Manage NuGet Packages for Solution.
The NuGet Solution Window opens up.
Step 2: Install Selenium Webdriver for the Project.
In the Nuget Solution window, search for and choose the Selenium Webdriver package. Click on Install.
Note: This NuGet Package may ask for license Acceptance. Read and Accept the License Agreement to proceed.
Step 3: Install Selenium Support Package.
Like Step 2, search for Selenium Support and Install Selenium. Support Package for the project.
Step 4: Create a new folder from inside the project. Name folder as “drivers.”
Step 5: Download the Selenium Browser-specific drivers. To execute Selenium end-to-end tests on the browser, download browser-specific drivers.
- Chrome drivers can be downloaded from here. The Firefox driver (called Gecko driver) can be downloaded from here.
Step 6: Copy the downloaded driver .exe file into the newly created drivers folder.
Selenium C# Automation Best Practices
Use Page Object Model
The page object model (POM) is a popular design pattern for Selenium end-to-end tests. In this pattern, a separate class file will be created based on the web page or page component and utilized inside the test methods.
Avoid Assertions in Page Object
Do not use any assertions (Assert) inside the page object.
Create a Top-Level Class for Setup and Teardown
Create a Base class for commonly used operations across tests like creating driver instance, teardown, etc. Utilize that base class inside tests.
Create Utility Classes
To use the same functions/methods for multiple tests, separate them and create them as utility classes. This helps avoid duplicate code.
Create Independent Tests
Do not write test cases dependent on one another. Independent tests help with parallelization, faster execution, and debugging.
Do Not Make Test Files Complex
When creating test files, don’t create files with thousands of lines of code. Split them into smaller chunks which increases readability.
Do Not Use Thread.Sleep()
Don’t use Thread.Sleep(). Use Implicit wait and Explicit wait instead. This will speed up test execution.
Avoid Using Xpath Locator
There exist many locators available apart from XPath like Id, Name, LinkText, PartialLinkText, TagName, ClassName, CSSSelector. An intelligent locator strategy makes test maintenance easier.
Integrate With CI/CD Pipeline
It is always recommended to integrate an automation framework with CI/CD tools like Jenkins, Azure DevOps, etc., which makes your testing more manageable and on time.
To share test reports with stakeholders, have reporting tools integrated into Selenium tests.
Credit: Source link