Saturday, June 7, 2014

How to switch to new tab and perform operation there then again switch back to previous tab and perform oepration in previous tab.

import java.awt.AWTException;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class NewTab {
    public static void main(String[] args) throws AWTException, InterruptedException {
     
        WebDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://www.google.co.in/?gfe_rd=cr&ei=dGKEU8HNCqeOiAenwoDgAQ");
        Actions act = new Actions(driver);
        WebElement link = driver.findElement(By.xpath("//a[text()='Gmail']"));
        act.moveToElement(link).contextClick().sendKeys("T").perform(); //open link in new tab
        act.sendKeys(Keys.chord(Keys.CONTROL,Keys.TAB)).perform();//switch to new tab by pressing control+tab
        Thread.sleep(3000); // simply wait for 3sec to see new tab open or not
        String main = driver.getWindowHandle();
        driver.switchTo().window(main);//switch control to new tab
        //act.sendKeys(Keys.chord(Keys.CONTROL,Keys.F4)).perform(); //press control+f4 to close tab
        driver.findElement(By.xpath("//input[@name='Email']")).sendKeys("hello"); //confirm that control is in new tab or not, just send few words in Email box
        act.sendKeys(Keys.chord(Keys.CONTROL,Keys.SHIFT,Keys.TAB)).perform(); //open previous tab
        driver.switchTo().window(main); //switch control to previous tab
        driver.findElement(By.name("q")).sendKeys("i am in previous tab"); //confirm that control is in previous tab or not, just send few words in google search box
       
    }
}

No comments:

Post a Comment