
Develop and master an automation framework with Appium and C# for Android and iOS across macOS and Windows, automating native and hybrid apps with Xamarin, Ionic, and React Native.
Karthik introduces Appium as an open-source mobile automation framework for native, hybrid, and web apps across Android, iOS, and Linux, highlighting language independence and no app modification.
Learn how Appium works with a Node.js based server, client libraries in Java, C#, JavaScript and Python, and how sessions and desired capabilities drive UI actions on Android and iOS.
Explore how Appium automates iOS and Android apps using UIAutomator2 and WebDriverAgent, leveraging desired capabilities to run native and hybrid apps on real and emulated devices.
Master installing and configuring Appium on Windows 10 with Java JDK and Android SDK, including Android Studio, setting JAVA_HOME and ANDROID_HOME, and creating and launching emulators.
Explore apm desktop for Windows 10 to start the server, inspect the user interface with the inspector, and configure desired capabilities to automate Android apps using emulators and real devices.
Write a simple Appium with C# test for an Ionic application by configuring desired capabilities and using an Android driver in Visual Studio, then launch the app.
Create an ionic hybrid app for appium automation by installing ionic, starting a tabbed project, and running it on Android or in the browser.
Explore automating a hybrid Ionic app with Appium and C# by using Chrome driver, webview context switching, and element identification with Chrome inspect to run tests.
Recollects changes to automate an ionic hybrid app, resolves chrome driver conflicts, and switches to the correct webview to identify and interact with user interface elements.
Learn to invoke and manage the Appium server from C# using the Appium Service Builder, start and stop sessions, and run with a new or existing session.
Refactor existing automation framework code to align with future development. Move mobile parts into a reusable structure with base classes, utilities, hooks, and test initializations.
Refactor code for a hybrid app by centralizing initialization in a static csv-based app service, handling view and native contexts with tailored desired capabilities, and streamlining Appium tests.
Refactor code to align with future automation framework development, enabling android context via base initialization, improving setup and teardown, and addressing static vs non-static design for parallel tests.
Refactor code to eliminate static access and instantiate utilities to prepare for parallel testing, ensuring proper initialization of APM servers, hybrid app context, and reliable test setup.
Remove static modifiers and properly initialize the APM local service to prevent null pointer exceptions and enable parallel tests by injecting context via constructor and starting the Appium local service.
Close the Android app after test execution using the Android driver, refactor to remove statics, and start the APM server for hybrid apps.
Discover the page object model in Appium with C#, using page factory to initialize elements and expose actions like click about and click homepage for Ionic hybrid apps.
Explore building an ionic app with a super prototype and implement the page object model for Appium with C#. Identify elements via chrome inspect and navigate splash, login, and home pages.
Build and organize Appium with C# page objects for splash, login, home, and new item pages; initialize pages with Android driver, identify elements, and implement sign-in and navigation.
Explore page object model for Appium with C#, using splash, skip welcome, login, and create item flows across pages; learn how page navigation connects screens.
Demonstrate page navigation in a POM architecture for an ionic hybrid app, returning page objects from splash to login and home, while syncing the android driver context.
Discover how to install APM on macOS, including prerequisites like Android SDK, Java JDK and Node.js, plus setting JAVA_HOME, installing via DMG, and starting the app with Node.js commands.
Install and use the Appium desktop client and server on macOS, explore the Xamarin app with the APM inspector, record actions, and generate boilerplate code across languages for iOS testing.
Install and run Appium on macOS using the desktop client, install node, npm, and web driver, then start the server and use the inspector to identify elements with capabilities.
Learn to extend an existing Appium C# framework to support native iOS apps using Visual Studio for Mac, Xamarin, and the iOS simulator, while deprecating the Android context.
Extend the automation framework by adding iOS native app support: create an alias context, initialize iOS context, run tests in the iOS simulator, and keep iOS and Android projects separate.
Identify Xamarin app UI elements with Appium inspector using accessibility id and name, then add them to code and perform input, save actions, comparing with page object model.
Explore the page object model in Appium with C# for native applications and learn why it fails on Mac and Windows, with Java workarounds.
Switch to Java for the page object model with Appium to handle native applications, using a Maven project and APM filter decorator, and note version differences and C# native support.
Conclude season one by summarizing what APM is and how to start on Windows and Mac, with Ionic, Android, iOS, and Xamarin, while leveraging C# for reusable code across ecosystems.
season two of the automation framework development for appium c# for android introduces design, development, and running framework, with tips and tricks; leverage spec flow for bdd and dependency injection.
Discover framework development focused on reusability, scalability, and maintainability, sharing a core library across Android, Windows, Mac operating system, and iOS to reduce effort and boost cross-platform testing.
Design a modular Appium automation framework with a core library, utilities, base extensions, and configurations, runnable across test runners, organized as separate projects, using a bottom-up approach.
Explore behavioral driven development and its spec flow integration to bridge gaps between business analysts, developers, and testers, and apply best practices within the automation framework.
Learn to set up SpecFlow in Visual Studio, manage NuGet packages, and create feature and step files for login and item-adding scenarios in an Appium C# automation framework.
Implement SpecFlow scenarios by wiring feature and step definitions for login and add new item, manage android context and splash screens, and use SpecFlow tables for dynamic data with assertions.
Explore specflow scenario context current to simplify cross-step data sharing and resolve binding and setup pitfalls in appium c# automation, including before scenario hooks and avoiding static base class issues.
Leverage SpecFlow scenario context current to store the Android context as a key-value pair, enabling dependency injection to share context across login and item workflows.
Register and inject the Android driver context using a dependency injection container in SpecFlow to achieve inversion of control, enabling stable object references across scenarios and parallel tests.
Start building the base namespace implementation for the advanced automation framework, creating base components, initialize hooks, and extension modules to organize APM elements and extensions.
Refactor the page architecture by introducing a base page and a page factory to centralize initialization, reduce duplicated Android driver code, and improve maintainability across all pages.
Implement base page logic, remove redundant parameters, and streamline tests; verify login works on the simulator and embrace a generic page object model for subclasses.
Learn to use a generic base page and current mobile page property to streamline the page object model and enhance test readability in C#.
Demonstrates generic page navigation in a POM setup using a generic get instance method and Activator to initialize pages with the Android context and page factory, improving readability and maintainability.
Fix GetInstance access in a C# appium page object model by reorganizing the base and pattern pages and adopting generics. See how this improves navigation, readability, and maintainability of POM.
Learn to refactor the Appium extensions into a generic, maintainable framework with a single APM local service, generic driver initializers, and port-based app start in C#.
Consolidate app automation by replacing Android and iOS drivers with a single APM driver, use web element patterns, and refactor with a mobile type enum for native and hybrid apps.
Consolidate Appium test initialization by unifying Android and iOS drivers under a single APM driver umbrella, creating one APM context and simplifying native and hybrid initializations.
Refactor the automation framework to a single APM context that supports both iOS and Android, introducing APM extensions and an initialize hook to streamline initialization and access through app context.
Debug and fix BoDi.ObjectContainerException in an Appium C# workflow. Adjust the APM driver to return an Android driver of a WebElement and resolve constructor-related issues for Android context registration.
Develop a single generic initialize APM driver method using a type parameter constrained to APM driver of IWebElement, enabling Android and iOS drivers with a unified startup and desired capabilities.
Introduce configurable settings for the automation framework using a custom app config. Replace hard-coded values with configuration for platform name, device name, and chrome driver.
Add custom configuration properties for name, platform name, device name, and chrome driver pod. Implement a configuration element collection to manage multiple configurations and expose configuration section with test settings.
Create and initialize custom configuration settings in the base settings file, populate them with staging test values (app, platform, device, chrome driver), and integrate them into initialization.
Learn how to implement and register a custom test configuration in an Appium C# framework, fix unrecognized settings, and run cross-platform tests with platform, device, and chrome driver details.
Automation framework development with Appium C# (Advanced) course is the first ever course on internet which talks about automating Android and iOS application in both Windows and MacOS Operating systems in C# with Appium.
This course was first launched in 2018 while Appium was in Alpha release stage, but later, many breaking changes happened in Nov 20, 2019 release of Appium and the course needed a major upgrade after that.
This course is now upgraded in 2020 to cover all the breaking changes in Season 3
Season 1 content
Following are the topics covered in Season 1
Basics of Appium and how it works
Understanding how to work with Appium desktop client in Windows 10 and MacOS
Automating Appium for Android in Windows 10 for Ionic application
Page Object Model with Appium
Automating Appium for iOS in MacOS for Xamarin application
Resolving the most common problems encountered.
Season 2 Content
BDD with Specflow for Appium
Designing -> Developing appium framework
Reporting for appium framework
Season 3 - Upgrade everything to 2020
Upgrade framework to Appium 4.1.1
Upgrade framework to .NET Core 3.1
Upgrade libraries to latest Specflow
Upgrade coding standard with new Page Object Model, DriverFactory and Custom PageFactory
This course does not covers the basics of C# or Specflow, but the course itself assumes that these are some of the pre-requisite before beginning this course.