0% found this document useful (0 votes)
26 views8 pages

Windows Handling

The document contains multiple Java classes demonstrating various window handling techniques using Selenium WebDriver. It covers single and multiple window handling, closing windows, switching back to the main window, handling tabs as windows, managing pop-up windows, waiting for new windows, and handling alerts. Each class includes methods for navigating to a website, interacting with elements, and managing window states effectively.

Uploaded by

rakeshlr1996
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views8 pages

Windows Handling

The document contains multiple Java classes demonstrating various window handling techniques using Selenium WebDriver. It covers single and multiple window handling, closing windows, switching back to the main window, handling tabs as windows, managing pop-up windows, waiting for new windows, and handling alerts. Each class includes methods for navigating to a website, interacting with elements, and managing window states effectively.

Uploaded by

rakeshlr1996
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

1.

Single Window Handling

package windowHandle;

public class SingleWindowHandle extends BaseTest {

public static void main(String[] args) {

BaseTest.setup();
driver.get("https://www.amazon.in");

// Get the current window handle


String mainWindow = driver.getWindowHandle();
System.out.println("Main Window Handle: " + mainWindow);

// Verify the page title


String pageTitle = driver.getTitle();
System.out.println("Page Title: " + pageTitle);

BaseTest.tearDown();

2. MultiPle Window Handling


import java.time.Duration;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class MultipleWindowHandle extends BaseTest {

public static void main(String[] args) {

BaseTest.setup();

try {

// Navigate to the website


driver.get("https://demoqa.com/browser-windows");

// Store the main window handle


String mainWindow = driver.getWindowHandle();
// Locate the button
WebElement windowButton = driver.findElement(By.id("windowButton"));

// Wait for the button to be clickable


WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.elementToBeClickable(windowButton));

// Scroll to the button to ensure it's in view


((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", windowButton);

// Click the button using JavaScript to bypass interception


((JavascriptExecutor) driver).executeScript("arguments[0].click();", windowButton);

// Wait for the new window to appear


wait.until(ExpectedConditions.numberOfWindowsToBe(2));

// Get all window handles


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

// Switch to the new window


for (String window : allWindows) {
if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
System.out.println("Switched to new window: " + window);

// Verify content in the new window


WebElement newWindowText = driver.findElement(By.id("sampleHeading"));
System.out.println("New Window Text: " + newWindowText.getText());
}
}

// Switch back to main window


driver.switchTo().window(mainWindow);

System.out.println("Back to main window: " + driver.getTitle());

} catch (Exception e) {
System.err.println("An error occurred: " + e.getMessage());

BaseTest.tearDown();

}
3. Closing Windows
import java.time.Duration;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class ClosingWindow extends BaseTest {

public static void main(String[] args) {


BaseTest.setup();
try {
// Navigate to the website
driver.get("https://demoqa.com/browser-windows");

// Store the main window handle


String mainWindow = driver.getWindowHandle();

// Locate the button


WebElement windowButton = driver.findElement(By.id("windowButton"));

// Wait for the button to be clickable and open two new windows
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

// First click to open a new window


wait.until(ExpectedConditions.elementToBeClickable(windowButton));

((JavascriptExecutor)
driver).executeScript("arguments[0].scrollIntoView(true);", windowButton);

((JavascriptExecutor) driver).executeScript("arguments[0].click();",
windowButton);

wait.until(ExpectedConditions.numberOfWindowsToBe(2));

// Second click to open another new window


driver.switchTo().window(mainWindow);

// Ensure we're back in the main window


wait.until(ExpectedConditions.elementToBeClickable(windowButton));
((JavascriptExecutor)
driver).executeScript("arguments[0].scrollIntoView(true);", windowButton);

((JavascriptExecutor) driver).executeScript("arguments[0].click();",
windowButton);

wait.until(ExpectedConditions.numberOfWindowsToBe(3));
// Get all window handles
Set<String> allWindows = driver.getWindowHandles();

// Close all windows except the main window


for (String window : allWindows) {
if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
System.out.println("Closing window: " + window);
driver.close();
}
}

// Switch back to main window


driver.switchTo().window(mainWindow);
System.out.println("Main window title: " + driver.getTitle());

} catch (Exception e) {
System.err.println("An error occurred: " + e.getMessage());
}
BaseTest.tearDown();

4. Switching Back to the Main Window


import java.time.Duration;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class SwitchBackMainWindow extends BaseTest {

public static void main(String[] args) {

BaseTest.setup();

driver.get("https://demoqa.com/browser-windows");

// Store the main window handle


String mainWindow = driver.getWindowHandle();

//Locate the element


WebElement windowButton=driver.findElement(By.id("windowButton"));

WebDriverWait wait=new WebDriverWait(driver, Duration.ofSeconds(10));


wait.until(ExpectedConditions.elementToBeClickable(windowButton));
// Scroll to the button to ensure it's in view
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", windowButton);

// Click the button using JavaScript to bypass interception


((JavascriptExecutor) driver).executeScript("arguments[0].click();", windowButton);

// Switch to the new window


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

for (String window : allWindows) {


if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
System.out.println("New window text: " + driver.findElement(By.id("sampleHeading")).getText());
}

// Switch back to the main window


driver.switchTo().window(mainWindow);

System.out.println("Back to main window: " + driver.getTitle());


BaseTest.tearDown();

5. Handling Tab as Windows


import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;

public class HandlingTabAsWindows extends BaseTest {

public static void main(String[] args) throws Exception {

BaseTest.setup();

driver.get("https://www.amazon.in");

// Store the main window handle


String mainWindow = driver.getWindowHandle();

// Open a link in a new tab using CONTROL + RETURN


WebElement link = driver.findElement(By.cssSelector("a[href*='deals']"));

Thread.sleep(2000);

link.sendKeys(Keys.CONTROL, Keys.RETURN);
// Get all window handles (tabs are treated as windows)
Set<String> allHandles = driver.getWindowHandles();

// Switch to the new tab


for (String handle : allHandles) {
if (!handle.equals(mainWindow)) {
driver.switchTo().window(handle);
System.out.println("Switched to new tab: " + driver.getTitle());
}

// Switch back to the main tab


driver.switchTo().window(mainWindow);

System.out.println("Back to main tab: " + driver.getTitle());

BaseTest.tearDown();

6. Handling Pop-up Windows


import java.time.Duration;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class HandlingPopUpWindows extends BaseTest {

public static void main(String[] args) {

BaseTest.setup();

driver.get("https://demoqa.com/browser-windows");

// Store the main window handle


String mainWindow = driver.getWindowHandle();

//Locate the element


WebElement windowButton=driver.findElement(By.id("windowButton"));
WebDriverWait wait=new WebDriverWait(driver, Duration.ofSeconds(10));

wait.until(ExpectedConditions.elementToBeClickable(windowButton));

// Scroll to the button to ensure it's in view


((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", windowButton);

// Click the button using JavaScript to bypass interception


((JavascriptExecutor) driver).executeScript("arguments[0].click();", windowButton);

// Switch to the pop-up window


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

for (String window : allWindows) {


if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
System.out.println("Pop-up window text: " + driver.findElement(By.id("sampleHeading")).getText());
driver.close(); // Close the pop-up
}

// Switch back to the main window


driver.switchTo().window(mainWindow);

System.out.println("Main window title: " + driver.getTitle());

BaseTest.tearDown();

7. Waiting For New Windows


public class WaitForWindowExample {
public static void main(String[] args) {
WindowHandlingExamples.setup();
driver.get("https://demoqa.com/browser-windows");

// Store the main window handle


String mainWindow = driver.getWindowHandle();

// Click button to open a new window


driver.findElement(By.id("windowButton")).click();
// Wait for the new window to appear
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.numberOfWindowsToBe(2));

// Switch to the new window


Set<String> allWindows = driver.getWindowHandles();
for (String window : allWindows) {
if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
System.out.println("New window text: " + driver.findElement(By.id("sampleHeading")).getText());
}
}

// Switch back to the main window


driver.switchTo().window(mainWindow);
System.out.println("Main window title: " + driver.getTitle());

WindowHandlingExamples.tearDown();
}
}

8. Handling Alerts in Windows


public class AlertHandlingExample {
public static void main(String[] args) {
WindowHandlingExamples.setup();
driver.get("https://demoqa.com/alerts");

// Click button to trigger an alert


driver.findElement(By.id("alertButton")).click();

// Switch to the alert and accept it


driver.switchTo().alert().accept();
System.out.println("Alert accepted");

// Verify the window is still active


System.out.println("Current window title: " + driver.getTitle());

WindowHandlingExamples.tearDown();
}
}

You might also like