Skip to main content

Handling Multiple Windows in Citibank site

 



Find the code for handling multiple windows via windows handler the steps are given in detail

here on clicking on the first window a new window shall open and while you move to the new window does not mean moving driver to the 2nd window, but it will still point to parent window so how to move to child window to a parent window is defined here


@Test

public void test1() throws InterruptedException {

System.setProperty("Webdriver.chrome.driver", "chromedriver");

    WebDriver driver = new ChromeDriver();

   driver.get("https://www.online.citibank.co.in/");

   driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);

   System.out.println(driver.getTitle());

   //gives you ID of current window

   String pa = driver.getWindowHandle();

   System.out.println(pa);

   //to click on the login button which will open anew window

   driver.findElement(By.xpath("//*[@title='LOGIN NOW']/img")).click();;

   //allwin.size give you number of windows/popup open which is 2

   //set object does not store the  value on the basis of indexes

   Set<String> allwin = driver.getWindowHandles();

   int count = allwin.size();

   System.out.println(count);

   //in order to work on the new window you need to point your driver on the new window to do that iterate the windows

   //as windowhandles is a set object "For loop" wont work as set object does not store the  value on the basis of indexes instead we will use iterator

   //create iterator object

   Iterator <String> it =allwin.iterator();

   //it.next will give you parent window id value and Remember  your driver is still Ponting to the first window

   String parentwindow = it.next();

 System.out.println("parentwindow id"+" "+ parentwindow);

 //it.next if mentioned 2nd time it will point it to child window

 String childwindow =it.next();

 driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

 System.out.println("childwindow id"+" "+ childwindow);

 driver.switchTo().window(childwindow);

 System.out.println("title of childwindow"+" "+driver.getTitle()); 

//will quit the window where you driver is present

driver.quit

}

}


You can also check the execution of code here

Comments

Popular posts from this blog

Automating Flipkart via selenium

                                            Hi Folks, we are automating a flipkart site where you will see how to search and filter the product you choose without logging in . import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.Select; import org.testng.annotations.Test; public class flipkart { WebDriver driver ; @Test       public void test()       {   System.setProperty( "Webdriver.chrome.driver" , "chromedriver" );     WebDriver driver = new ChromeDriver();   driver .manage().timeouts().implicitlyWait(5, TimeUnit. SECONDS );   driver .manage().window().maximize();          driver .get( "https://www.flipkart.com" );   ...

Cucumber - Execution of test cases and reporting

Before going through this blog please checkout blog on   Cucumber Fundamentals Cucumber is testing tool which implements BDD(behaviour driven development).It offers a way to write tests that  anybody can understand, regardless of there technical knowledge. It users Gherkin (business readable language) which helps to  describe behaviour without going into details of implementation It's helpful for  business stakeholders who can't easily read code ( Why cucumber tool,  is  called  cucumber , I have no idea if you ask me I could have named it "Potato"(goes well with everything and easy to understand 😂) Well, According to its founder..... My wife suggested I call it  Cucumber  (for no particular reason), so that's how it got its  name . I also decided to give the Given-When-Then syntax a  name , to separate it from the  tool . That's why it's  called  Gherkin ( small variety of a cucumber that's been pickled. I...

Mac OS- Error - eclipse (JVM) while updating Catalina to Big Sur

  Hi, As you have received your new OS update Big Sur 11 from Catalina 10  You might be facing issue of eclipse throwing an error "failed to create Java virtual machine". This a bug already reported to the community and you will find many confusing solution to fix the issue I'll explain you in simple steps how to fix this issue. Press keys (command_shift+G) make sure while pressing these buttons your mouse is pointing on desktop   Go to folder, A window will open  where you have to enter. " /Library/Java/JavaVirtualMachines " and press Go it will take you the version installed of JDK in your machine in my case it is jdk1.8.0_241.jdk shown as below you need to find the eclipse installed in your system it can be under application(which can be found in Finder) in my case it was present in home directory under software folder   click on eclipse and go to "show package contents"  Open "contents" folder check the file "info.pilst". open ...