Skip to main content

How to define DRIVER.MANAGE().WINDOW().MAXIMIZE() ?

What  is DRIVER.MANAGE().WINDOW().MAXIMIZE() ?





Now we explain why do we write syntax as below:

driver.manage().window().maximize(); // To maxmize
driver.navigate().to("some url"); // To open url
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);// To set implicit time



Actually it’s JAVA concept. It is called as method chaining. We will learn about this now.
Some basic Concepts of JAVA:
1. There can be two types of members in a java class. Static and Non-static.
2. Static methods can be called using class name or by creating an object of that class but calling by class name is perfect practice.
3. Non-static members of class can be called only through object of class.
4. A method can return a type. It may be class or interface as well.
#JAVACODE to learn how to call static and non-static methods:
public class Demo {

 void NonStaticMethod()

 {

  System.out.println("Non static method");

 }

 static void StaticMethod()

 {

  System.out.println("static method");

 }

  public static void main(String[] args) {


  Demo.StaticMethod();

  Demo object= new Demo();

  object.NonStaticMethod();

  object.StaticMethod(); // Not preferred 

 }

}

Outout:
static method
Non static method
static method
#JavaCode to understand method chaining:

class AnotherDemo

{

 public NewDemo AnotherDemoMethod()

 {

  System.out.println("AnotherDemoMethod");

  return new NewDemo();

 } 

}

class NewDemo

{

 void NewDemoMethod()

 {

  System.out.println("NewDemoMethod");

 }



}

public class Demo {

 public AnotherDemo DemoMethod()

 {

  System.out.println("DemoMethod");

  return new AnotherDemo();

 }



 public static void main(String[] args) {

  

  Demo DemoObject= new Demo();

  AnotherDemo AnotherDemoObject= DemoObject.DemoMethod();

  NewDemo NewDemoObject= AnotherDemoObject.AnotherDemoMethod();

  NewDemoObject.NewDemoMethod();

  

  // method chaining

  Demo DemoObject1= new Demo();

  DemoObject1.DemoMethod().AnotherDemoMethod().NewDemoMethod(); // Method chaining

  

 }


}
2. Class “Demo” has a method “DemoMethod” which return an object of class “AnotherDemo”.
3. Class “AnotherDemo” has a method “AnotherDemoMethod” which return an object of class “NewDemo”.
4. Class “NewDemo” has a method “NewDemoMethod” which return void.
5. Only class “Demo” has main method and through that method we want to access “NewDemoMethod” of class “NewDemo”.
6. We created an object of “Demo” to access method present in class “Demo”.
Demo DemoObject= new Demo();
7. Now, we will call “DemoMethod” of class “Demo” which returns an object of class “AnotherDemo”, which we can store in a variable of type “AnotherDemo”.

AnotherDemo AnotherDemoObject= DemoObject.DemoMethod();
8. Now what we have?? An object of class “AnotherDemo” means we can access methods of class “AnotherDemo”.
9. We call method “AnotherDemoMethod1” of class “AnotherDemo” which returns an object of class “NewDemo”, which we can store in a variable of type “NewDemo”.
NewDemo NewDemoObject= AnotherDemoObject.AnotherDemoMethod();
10. Now, we can access method of “NewDemo”.
NewDemoObject.NewDemoMethod();
11. So, now we have following lines of code:

Demo DemoObject= new Demo();

AnotherDemo AnotherDemoObject= DemoObject.DemoMethod();

NewDemo NewDemoObject= AnotherDemoObject.AnotherDemoMethod();

NewDemoObject.NewDemoMethod();
13. Above code has concepts of method chaining and anonymous object. When we need to use object once in a program, we can go for anonymous object for better memory utilization.
I hope above java concept must be clear.
Same logic is applied for selenium. I will explain one statement:
driver.manage().window().maximize();
When we call manage() method, it returns a “Options” type. “Options” is an interface.

public Options manage() 

{

return new RemoteWebDriver.RemoteWebDriverOptions();

}
Interface “Options” has method “windows” which returns “Window” type.

public interface Options {

WebDriver.Window window();

}
Now, we can use any method of interface “Window”. it has following methods which can be called.

public interface Window {

  void setSize(Dimension arg0);

  void setPosition(Point arg0);

  Dimension getSize();

  Point getPosition();

  void maximize();

  void fullscreen();

 }
See complete code below:

WebDriver driver= new ChromeDriver();

Options optnObj= driver.manage();

Window winObj= optnObj.window();

winObj.maximize();

  

// We can write above lines of code in one line as

driver.manage().window().maximize();

Comments

Popular posts from this blog

Software Testing Interview Question for beginners and experienced

 Software Testing Interview Question for beginners and experienced Software Testing Interview Question for beginners and experienced- software testing interview questions INTERVIEW QUESTIONS Project specific Questions 1. What was the duration of your project? 2. Explain about your project. 3. How many testers were their on this project. 4. According to you which was the complex part of the project from testing point of view. 5. How did you do the testing of your project? 6. How many test cases have you designed? How many you wrote in a day? 7. How many bugs did you find? 8. Tell me any high Severity bugs that you found. 9. What happens when the client changes requirements? 10. Which tool you used for defect reporting? 11. What is the database used for your project. 12. In which technology this application is developed? Company specific Questions 1. Where are you working currently? 2. How that Seed has sent you here for an interview when you are working in the same company. 3. Where...

How to analyze a JMeter summary report?

  A  Jmeter  Test Plan must have listener to showcase the result of performance test execution. Listeners capture the response coming back from Server while Jmeter runs and showcase in the form of – tree, tables, graphs and log files. It also allows you to save the result in a file for future reference. There are many types of listeners Jmeter provides. Some of them are: Summary Report, Aggregate Report, Aggregate Graph, View Results Tree, View Results in Table etc. Here is the detailed understanding of each parameter in Summary report. By referring to the figure: Label : It is the name/URL for the specific HTTP(s) Request. If you have selected “Include group name in label?” option then the name of the Thread Group is applied as the prefix to each label. Samples : This indicates the number of virtual users per request. Average : It is the average time taken by all the samples to execute specific label. In our case, the average time for Label 1 is 942 milliseconds & to...

What is SQL

SQL Introduction:What is SQL SQL stands for Structure Query Language. SQL is used to create database and manipulate database. Almost every industries have their own database which is used on daily basis to maintain record of the inventory, Employee record, salary record etc. So Database is very important for all industries whether it is small industries or big industries. Without database , it is very difficult to maintain record so database is required at all place. SQL is a structure query language that enables you to work with a database. Using SQL, you can insert records, update records, and delete records. You can also create new database objects such as databases and tables. And you can drop (delete) them SQL is of two type which is frequently used in an application to save record 1. DDL(Data Definition Language) 2. DML(Data Manipulation language) Data:   Data is a fact which is related to any object For example your name, age, height, weight, etc are some data...