C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++ Auto keyword in C++ C++ 11 vs C++ 14 vs C++ 17 C++ STL (Standard Template Library) Differences Between C Structures and C++ Structures Divide by Zero Exception in C++ Dynamic Constructor in C++ Dynamic Memory Allocation in C++ Find the Size of Array in C/C++ without using sizeof() function Floating Point Operations and Associativity in C, C++ and Java Hello World Program in C++ How to create a table in C++ How to Setup Environment for C++ Programming on Mac Implementation of a Falling Matrix in C++ Message Passing in C++ Pointer to Object in C++ Templates in C++ vs Generics in Java Ways to Copy a Vector in C++ What does Buffer Flush mean in C++ sort() function in C++ Structure Sorting (By Multiple Rules) in C++ Similarities between C++ and Java std::distance in C++ Array program in C++ C++ Tricks for Competitive Programming Desired Capabilities in Selenium Web Driver in C++ Socket Programming in C++ Template Specialization in C++ Classes and Objects in C++ Convex hull Algorithm in C++ DES in C++ C++ vardiac() function Difference between Two Sets in C++ Difference between Exit and Return Structured Binding in C++ Differences between Local and Global Variable Bitwise Operator vs Logical Operator Difference between OOP and POP in C++ Fork in C++ Functors in C++ How to call a void function in C++ How to create a directory or folder in C/C++ How to create a library in C++ How to create a stack in C++ How to create the Processes with Fork in C++ How to Handle Divide by Zero Exception in C++ Lambda Expression in C++ Pattern programs in C++ Roadmap to C++ Programming Substring in C++ Virtual base class in C++ Bits stdc++.h in C++ Top 14 Best Free C++ IDE (Editor & Compiler) for Windows in 2022 Bitmasking in C++ Auto Keyword in C++ Features of OOPS in C++ Hospital Management Project in C++ How to Declare Unordered Sets in C++ How to Sort an Array in C++ Include Guards in C++ Iostream in C++ Method overriding in C++ How to run program in turbo c++ How to Use Getline in C++ Leap Year Program in C++ Naming Convention in C++ New Operator in C++ Nullptr in C++ Object Slicing in C++ Principles of Object-Oriented Programming in C++ Processing strings using std string stream in C++ Pure Virtual Function in C++ With Example Program Random Number Generator in C++ Singleton Design Pattern in C++ Size_t Data Type in C++ Skyline Problem in C++ System() function in C++ Web Development in C++ Data Hiding in C++ Difference between exit() and _Exit() in C++ Hashing in C++ Object in C++ Sum of all Elements between k1’th and k2’th Smallest Elements Virtual class in C++ Vector Size in C++ Top best IDEs for C/C++ Developers in 2022 Tensorflow in C++ Sliding Window Technique in C++ Reverse String Word-Wise in C++ Returning a Function Pointer from a Function in C/C++ RTTI in C++ Pthreads or POSIX Threads in C++ Reserved Keywords in C++ Passing a Vector to a function in C++ 10 Best C and C++ Books for Beginners & Advanced Programmers Add two numbers represented by two arrays in C++ Array of Object in C++ C++ Program For FCFS Containership in C++ Counting Frequencies of Array Elements in C++ Decltype type Specifier in C++ Dynamic _Cast in C++ Difference between int main() and int main(void) in C/C++ Depth First Search Program to Traverse a Graph in C++ Features and Use Of Pointers in C/C++ Fread Function in C++ Programming Fscanf Function in The C++ Functions in C++ With Types and Examples Gmtime Function in C/C++ How is Multiset Implemented in C++ How to Build a Program in C++ How to Declare a 2d Array Dynamically in C++ inheritance Program in C++ int Max and int Min in C/C++ is It Fine to Write Void Main Or Main in C/C++ Lambda Expressions in C++ How to create a button in C++

Desired Capabilities in Selenium Web Driver in C++

  • A class called Desired Capabilities is used to specify a set of fundamental requirements, such as browser, operating system, and version combinations.to carry out automated testing of a web application across multiple browsers.
  • When using Selenium automation testing to try to automate our test scripts, we need to consider these combinations when declaring a specific test environment in which our website or web application should render flawlessly.
  • Screen resolutions, mobile devices, desktop computers, and mobile browsers are all examples of these environments.
  • We use the Desired Capabilities in Selenium testing or Appium testing to declare these environments in our Selenium automation testing script, and this is exactly what we will discuss in this article.
  • I will assist you in familiarizing yourself with the Appium and Selenium Desired Capabilities.
  • With examples, I will explain what they are and how they are utilized in Appium and Selenium automation testing.

What kinds of Skills are D esired?

  • The org.open a.selenium.remote contains a component called Desired Capabilities.Package of DesiredCapabilities.
  • It assists Selenium WebDriver in setting the browser properties. Thus, we can set browser properties by utilizing various capabilities from the Desired Capabilities class.
  • Examples include the browser's name, version, and so forth.When we set these capabilities for browsers; we use key-value pairs.
  • For all of the specific methods, etc., you can look to the GitHub library for the Desired Capabilities.
  • When using Selenium automation testing, we always have different requirements for execution, such as which browser to use, which operating system to use, and which version to use for the test.
  • This is where Desired Capabilities on Selenium Grid come in handy.
  • We can use the set Capability method from the DesiredCapabilities class to set the various types of browser capabilities to declare Desired Capabilities in Selenium automation testing with Grid.IE, Firefox, Edge, and Chrome) platform name(Mac OS, Windows, etc.)
  • Setup Selenium Grid for Parallel Execution in Multiple Browsers In the case of mobile application automation, where we need to execute test automation on a variety of browser and device properties, the Desired Capabilities class comes in handy.
  • To use automation testing for various mobile platforms, including iOS and Android, among others.In addition, there may be various platforms (operating system) versions, such as Android 9.x, and 10.x, and iOS 12.x, 13.x, etc.; these properties can be set using Desired Capabilities in Appium for Android or iOS by our requirements.
  • Selenium Advanced-certification this certification is great for professionals in testing who want to learn advanced, practical Selenium automation testing techniques.

A brief overview of the LambdaTest Selenium Advanced certification can be found here:

  • YouTube Thumbnail in Selenium and Appium, the Desired Capabilities class provides instructions to the WebDriver regarding the environment, such as the browser name, browser version, platform, and so on.
  • Over which we use our automation scripts to carry out automated browser testing.
  • However, the Desired Capabilities class can be used for more than just that. Additionally, we can set preferences for each browser, such as enabling options in Chrome and Firefox, testing incognito, disabling javascript, and so on.
  • Selenium Automation Testing with Disabled JavaScript Settings If you use a cloud-based online Selenium grid, the Desired Capabilities class can also be used to test locally hosted web applications with Selenium, generate command-by-command screenshots, or even record a video of the entire test automation execution across a variety of browser and operating system configurations.

Types of Desired Capabilities Methods

Now, let's talk about the various methods in the Desired Capabilities class for setting test automation properties.

  1. getCapability()
    This method setCapability() from the class Desired Capabilities can be used to set the name of the device, the name of the platform, the version of the platform, the absolute path of the application under test, application activity (in Mobile automation), application Package (in Java), and so on. Get browser name():

    This method from the class Desired Capabilities, get browser name(), can be used to obtain the Browser's name.
  2. setBrowserName()
    The class Desired Capabilities' setBrowserName() method can be used to change the browser's name.
  3. getVersion()
    This method from the class Desired Capabilities, getVersion(), can be used to determine the platform or browser version.
  4. Set version()
    The class Desired Capabilities' set version() method can be used to change the browser or platform version.
    getplatform()

    The getPlatform() method from the class Desired Capabilities can be used to obtain platform-specific information.
  5. setPlatform()
    Thismethod from the class Desired Capabilities can be used to modify the platform's specifics.

Desired Capabilities in Selenium WebDriver for Browsers

  • Toto uses the Desired Capabilities in Selenium WebDriver for Chrome, the ChromeDriver session needs to be started.
  • So, let's talk about the capabilities that ChromeDriver supports and how we can use them to set the capabilities we want in Selenium Webdriver for Chrome.

There are two ways to set ChromeDriver's capabilities.

  1. Chrome Options
  2. Desired Capabilities
  3. ChromeOptions is a different class which can be used in conjunction with Desired Capabilities to modify or customize the various properties of the Chrome browser.
  4. The arguments from the ChromeOptions class
  5. Disable-info bars: It is used to prevent notifications such as "Chrome is being controlled by automated software" from appearing in the Chrome browser.
  6. Make-default-browser: It is utilized to set Chrome as the default browser.
  7. Disable-popup-blocking: It is used to prevent Chrome browser pop-ups from appearing.
  8. Incognito: It starts the Chrome browser in incognito mode with the maximum
  9.  Settings: Headless: It maximizes the Chrome browser.It is used to use the headless mode of the Chrome browser.
  10. Let's now look at an ad blocker that makes use of Chrome Option and the Desired Capabilities class.For this, we will make use of an extension for an ad blocker.
  11. View rawcrx.java on GitHub Testing with Selenium there is ways to customize the Desired Capabilities in Selenium WebDriver for Firefox browsers, just like there are ways to customize the capabilities in the Chrome browser.
  12. Mozoz: The firefoxOptions feature is only available in the Firefox browser.Moz can help us: firefoxOptions enables us to control the behaviour of the Firefox browser by customizing or modifying various properties. It is typically invoked as a member in either of the two, the first coming from entries for always match and the second from entries for firstMatch.
  13. The following options can influence how the Firefox browser starts or runs, can be found in firefoxOptions.
  14. The binary (String): The custom Firefox binary can use the absolute path that we provide.When Firefox's driver, GeckoDriver, is not specified, it will typically attempt to locate Firefox on the current system.
  15. args (a string array): The Firefox binary receives the command line arguments through this argument.When using this syntax, it should include hyphens and dashes like "-profile."

Therefore, we should use syntax like ["-profile", "path to the profile"] to get GeckoDriver to use an existing profile.

  1. Profile(string): We can supply the directory's path so that the Firefox instance can be used.This can be used to install custom certificates or Firefox extensions.When we want to set custom preferences, it is recommended to use prefs rather than passing the profile directly. The prefs example and others are provided below.

In Selenium WebDriver for Firefox, an illustration of declaring Desired Capabilities can be found here.

{
"function":{
"alwaysMatch":{
"moz:firefoxOptions":{
"binary":"/usr/local/firefox/bin/firefox",
"args":["-headless","-profile","/path/to/my/profile"],
"Environmentalsetting":{
"dom.ipc.processCount":9,
"javascript.options.showInConsole":True
},
"Log":{"Level":"Trace"}
}
}
}
}
if(driverParameter==null||driverParameter.equalsIgnoreCase(FIREFOX))
{
DesiredCapabilitiescapabilities=DesiredCapabilities.firefox();
FirefoxOptionsoptions=newFirefoxOptions();
options.setHeadless(headless);
Capabilities.merge(optional);
}
  • View rawseleniumwebdriver.java, which is hosted on GitHub. Desired Capabilities in Selenium WebDriver for IE (Internet Explorer) Let's move on to the Desired Capabilities in Selenium WebDriver for IE (Internet Explorer).We use Selenium WebDriver's InternetExplorerOptions and Desired Capabilities for IE.
  • In the Selenium WebDriver for IE, this is an illustration of declaring Desired Capabilities.
if(driver parameter == null || driver parameter.equalsIgnoreCase(IE)): 
{
capabilities = capabilities.internetExplorer();
abilities.setCapability(true, "requireWindowFocus")
capabilities.setCapability(CapabilityType.True, accept_ssl_certs);
}
  • View rawseleniumwebdriverforIE.java, which is hosted on GitHub. There are a few Internet Explorer-specific features that we can make use of; let's go over a few of them one at a time.
  • booleanignoreZoomSetting: By utilizing this feature, you can defer checking the browser's zoom level to 100%.It is set to false by default.As an input, a Boolean value is required.
  • initialBrowserUrl: We can use this capability to select the initial URL, or website, to which the Internet Explorer browser should redirect when it starts.As input, a string is required.
  • booleanenableElementCacheCleanup: This capability checks the element cache for out-of-date elements. The capability tells the WebDriver to clean up if they are discovered.As an input, a Boolean value is required.
  • booleanrequireWindowFocus: This capability tells the driver to make sure the Internet Explorer window has the focus before doing anything else, like using the mouse or keyboard, etc. It uses a Boolean value as its input and is set to false by default.
  • booleanignoreProtectedModeSettings: You can take advantage of this feature when performing Selenium automation testing to bypass the protected mode check. As an input, a Boolean value is required.

Therefore, we can make use of some of these Internet Explorer-specific capabilities.