Navigate: http://the-internet.herokuapp.com/windows
Part 1: Click on link. Switch to new Window. Fetch text and print. Then close the other window.
Part 2: Change the attribute using java script executor and after that click on the link, so that page open in the same window.
public static void main(String[] args)
{
System.setProperty("webdriver.chrome.driver","C:\\Selenium\\chromedriver\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://the-internet.herokuapp.com/windows");
driver.findElement(By.xpath("//*[@id=\"content\"]/div/a")).click();
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
WebElement str = driver.findElement(By.xpath("//h3"));
System.out.println(str.getText());
driver.close();
}
Multiple Window Handling
public class Handle_multiple_windows {
public static void main(String[] args) throws Exception
{
WebDriver driver=new FirefoxDriver();
driver.get(” http://the-internet.herokuapp.com/windows”);
driver.manage().window().maximize();
//open new tab
WebElement handleWindow=driver.findElement(By.partialLinkText(“Click Here”));
handleWindow.click();
//handle window
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
System.out.println(tabs.size());
//switch to second tab
driver.switchTo().window(tabs.get(1));
//click on new tab
WebElement new_window = driver.findElement(By.xpath(“//div[h3=’New Window’]”));
new_window.click();
Thread.sleep(3000);
//closing only new tab
driver.close();
//return to old window
driver.switchTo().window(tabs.get(0));
}
Start your code here
public class WindowHandle {
WebDriver driver;
@Test
public void f() {
System.getProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
driver =new ChromeDriver();
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(" http://the-internet.herokuapp.com/windows");
String mainwindow=driver.getWindowHandle();
//a[@href='/windows/new']
driver.findElement(By.xpath("//a[@href='/windows/new']")).click();
Set<String>set=driver.getWindowHandles();
for(String childwindow:set)
{
if(!mainwindow.equals(childwindow))
{
driver.switchTo().window(childwindow);
WebElement ele=driver.findElement(By.tagName("h3"));
System.out.println(ele.getText());
driver.close();
}
}
driver.switchTo().window(mainwindow);
}
}
Multiple Window Handling code
driver.get("http://the-internet.herokuapp.com/windows"); WebElement click_here_link = driver.findElement(By.xpath("//a[text()='Click Here']")); click_here_link.click(); ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles()); driver.switchTo().window(tabs.get(1)); WebElement text = driver.findElement(By.xpath("//h3[text()='New Window']")); System.out.println(text.getText()); driver.close();