
Develop selenium webdriver tests in c# by mastering locator strategies and page object models; build data-driven and keyword-driven frameworks, then implement specflow for behavior-driven testing with git and teamcity.
Create a Visual Studio console project and edit Program.cs with console.WriteLine and console.ReadKey. Build, clean, run, and debug with breakpoints to step through code.
Explore data types in C#, including string, int (16/32/64), bool, char, and decimal. Learn variable declaration, string concatenation, console output, indexing, and @ verbatim strings.
Explore conditional and control statements in C#, including if-else, else-if ladders, and switch with logical operators. Demonstrate for and while loops, console input, and typecasting to process user data.
Explore classes as blueprints with properties and behavior, and create objects using new to access instance variables and methods like get area, while learning about public access and constructors.
Discover how static variables in C# share a single memory allocation and are accessed via the class name, not objects, and how static methods access only static members.
Explore how inheritance lets a derived class access properties and methods from a base class, using public, protected, and private modifiers to control accessibility in C#.
Explore how constructors in inheritance invoke base class constructors before derived ones, and how to use constructor overloading and the base keyword to pass parameters and choose among overloaded constructors.
Explore using the base keyword to access base class constructors, variables, and methods, and learn method overloading as compile-time polymorphism with a get area example.
Explore abstract classes in C#, defined with the abstract keyword, used for inheritance, and learn how derived classes implement abstract methods with overrides.
Interfaces achieve 100% abstraction by declaring methods without definitions for derived classes to implement. A class can implement multiple interfaces and use interface references to access only interface methods.
Explore exception handling in C# by using try-catch blocks, finally clauses, and throw to manage null reference and format errors, print stack traces, and define user defined exceptions.
Explore encapsulation in C# by using a private data field with public get and set accessors, learn how properties simplify assigning and retrieving values, including shorthand property syntax.
Explore MSTest attributes in Visual Studio, including test class, test method, test initialize, test cleanup, class initialize, and class cleanup.
Explore MSTest assembly initialize and assembly cleanup attributes, which run once per project before any test methods and after all tests, and learn category grouping and ignore for skipping tests.
Explore how to install and use Firebug and Firepath in Firefox to inspect page elements, generate and validate XPath, and build robust selectors.
Explore XPath fundamentals for web element selection, including tags, nodes, root and parent-child hierarchies, and use cases for double backslash, single slash, indexing, dot, double dot, and attribute-based selectors.
Learn to build XPath selectors using and, or, equals, and functions like contains, text, normalize-space, start with, plus index and last. Compare absolute and relative XPath for robust selectors.
Learn to locate common web elements with XPath in Selenium, including text fields, buttons, checkboxes, radio buttons, and hyperlinks, using id, name, and text-based strategies.
learn to locate web elements with css selectors, using direct child, descendant, and attribute selectors, plus id and class shortcuts, and advanced patterns like nth-of-type and substring matches.
Explore descendant access view in XPath to locate elements with dynamic attributes by anchoring on a constant attribute, then filter by child, grandchild, and node type.
Learn to locate elements with the following axis view and the descendant axis view, using following-sibling, position, and last to target parallel nodes and descendants in XPath.
This lecture explains the ancestor access view in xpath, showing how to reach a node’s parent and ancestors and use following-sibling and descendant axes to locate elements.
Explore the preceding axis view, which selects nodes at the same level above the current node using preceding siblings and XPath.
Learn how to use Ranorex Velocity, a Chrome extension for identifying and validating web element locators with XPath, CSS, and link text, including auto-detect and copy selector.
Learn how to set up Bugzilla on a Windows box using a Win32 executable, with an installation wizard, port configuration, and login credentials.
Also refer to Section 23 :- Firefox Driver with Selenium 3.0
Explore modular, data-driven, and keyword-driven frameworks for selenium webdriver in C#, build a base webdriver class, use Web.config for configuration, and manage data and steps via Excel.
Outline a framework structure with base class for webdriver, component helpers, configuration readers, excel reader for data driven tests, interfaces, page objects, settings, and test scripts.
learn to read app.config configuration via configuration manager and appSettings, retrieving browser, username, and password with key-based access and convert the browser value to an enum for flexible framework initialization.
In this video, we will discuss about creating the base class. BaseClass is very important class for over framework, which will take care of launching and closing the browser based on the configuration specified in the App.config file
Master page navigation in selenium with c#, creating a chrome driver, launching the browser, and navigating to a url from app.config. Learn difference between close and quit and implement teardown.
Configure chrome options, internet explorer options, and firefox profile to launch browsers with additional settings. Use add argument to maximize and add extension to load extensions.
Identify web elements with Selenium WebDriver using By methods such as id, class name, link text, css selector, name, tag name, and xpath, and distinguish find element from find elements.
In this video, we will discuss how to handle
1. Hyperlink
2. Textbox
3. Checkbox
Also we will develop certain utility method which is not prvided by Webdriver
In this video, we will discuss how to handle
1. Buttons
2. RadioButtons
3. Enabled and Text property form IWebElement interface
Also we will develop certain utility method which is not prvided by WebdriverLearn to handle dropdown lists in Selenium WebDriver with C#, using the SelectElement class to choose by index, value, or text, and to inspect options and the selected item.
Learn to capture and save screenshots with the WebDriver API during tests, returning a screenshot object and saving as jpeg with an optional timestamped file name.
PhantomJS provides a headless browser for web automation via JavaScript APIs, running in a daemon with no UI, using Selenium WebDriver and NuGet for driver setup and screenshots after actions.
Explore phantomjs option and phantomjs driver service classes to configure capabilities, toggle take screenshots, set logs, and customize phantomjs startup with default or specified settings.
Extract all web elements with find elements, returning a list (22 matches) or an empty list when none are found, and demonstrate retrieving ids with get attribute.
This lecture explains implicit wait and page load timeout in Selenium WebDriver, showing how to configure set page load timeout and implicit wait via manage.timeouts to handle loading.
Learn to implement explicit dynamic waits with WebDriverWait, set implicit wait, tailor polling intervals and ignored exceptions, and build wait logic with delegates for elements and titles.
Explore dynamic waits with the default wait class to apply wait logic on any web element. Learn how this complements implicit waits and WebDriverWait for reliable dropdown interactions.
Explore using the expected conditions class to implement dynamic waits in Selenium WebDriver, leveraging element exist, element visible, and title contains for robust test flows.
Learn how to perform browser actions in the browser window using the Webdriver API, including back, forward, refresh, and maximize the window via the AI navigation interface.
Master handling multiple browser windows in selenium WebDriver with C#: switch between parent and child windows using window handles, implement reusable switch methods, and distinguish close from quit.
Learn how to interact with elements inside iframes by switching to the frame, using switch to frame with element, name, or index, and returning to default content.
Learn to handle JavaScript pop ups in Selenium WebDriver by switching to alerts, confirms, and prompts, using accept, dismiss, and sendkeys.
Handle JavaScript confirmation and prompt popups using Selenium WebDriver by switching to alerts, accepting or dismissing, and sending input to prompts within frames.
Learn to perform mouse actions with Selenium Webdriver using the Actions class, including context click, drag and drop, and move to element, then build, perform, and release actions in C#.
Automate autosuggest with selenium web driver by typing an initial string, waiting for the list, and selecting the matching item from the suggestions.
Use the webdriver action class to simulate keyboard actions with key down, key up, and send keys, including ctrl+t, alt+f+x, and ctrl+shift+a.
Learn to execute JavaScript from Selenium WebDriver by casting the driver to a JavaScript executor, then run scripts to fill fields, click buttons, and scroll to elements.
Master the page object model by mapping each web page to a dedicated class with web elements, actions, and navigation, demonstrated through home, login, and bug detail page flows.
Explore how Page Factory simplifies Selenium WebDriver element initialization in a page object model by using find by attributes, init elements, and direct element actions like send keys and click.
Design a page object model with a base page class that initializes elements in the constructor, provides common actions and navigation, and lets page-specific classes inherit shared behavior.
Selenium Webdriver is one of the most well-known testing frameworks. It is an open source project that allows testers and developers alike to develop functional tests to drive the browser. Selenium Webdriver can work on any browser that supports JavaScript, since Selenium has been built using
JavaScript.
The course is not limited to following content. In future I will keep adding the new topics to this course.
Basic of C# Programming
In this section, we are going to discuss about basic of C# programming language
1. Creating the Console Application
2. Data Types in C#
3. Conditional & Control Statements
4. Class & Objects
5. Inheritance
MsTest
In this section, we will discuss about MsTest attributes such as
1. TestClass and TestMethod
2. TestInitialize and TestCleanup
3. ClassInitialize and ClassCleanup
So on...
And source code shown as part of video lecture will be provided for download