Consider the following Selenium Python code snippet that opens a new window and switches to it. What will be the printed output?
from selenium import webdriver from selenium.webdriver.common.by import By import time # Setup driver options = webdriver.ChromeOptions() options.add_argument('--headless=new') driver = webdriver.Chrome(options=options) # Open initial page driver.get('https://example.com') original_window = driver.current_window_handle # Open new window driver.execute_script('window.open("https://example.org", "_blank");') time.sleep(1) # Switch to new window for handle in driver.window_handles: if handle != original_window: driver.switch_to.window(handle) break print(driver.title) driver.quit()
Remember that driver.title returns the title of the current page after switching windows.
The code opens https://example.com first, then opens a new window with https://example.org. After switching to the new window, the title of https://example.org is "Example Domain" because both example.com and example.org share the same page title.
You have switched to a new browser window using Selenium. Which assertion correctly checks that the current window handle is not the original one?
original_window = driver.current_window_handle # code to open and switch to new window # Which assertion below is correct?
The current window handle should be different from the original after switching.
After switching, the current window handle must not be the same as the original window handle. Option A correctly asserts this.
On a webpage, a button opens a new window when clicked. The button has the text "Open New Window" and a unique id "open-window-btn". Which locator is best to find this button in Selenium?
Using unique IDs is the fastest and most reliable locator.
Locating by ID is the best practice when the element has a unique ID. Option C uses this method.
Review the code below. It tries to switch to a new window but raises NoSuchWindowException. What is the likely cause?
original_window = driver.current_window_handle # Open new window driver.execute_script('window.open("https://example.org", "_blank");') # Incorrect switch handle = driver.window_handles[1] driver.switch_to.window(handle) # Then close original window driver.switch_to.window(original_window) driver.close()
Check the order of window closing and switching.
The code closes the original window but then tries to switch back to it, causing NoSuchWindowException.
You want to create a helper function that waits for a new window to open and switches to it safely. Which implementation below correctly waits up to 10 seconds for a new window and switches to it?
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def switch_to_new_window(driver, timeout=10): original_windows = driver.window_handles WebDriverWait(driver, timeout).until( lambda d: len(d.window_handles) > len(original_windows) ) new_windows = set(driver.window_handles) - set(original_windows) driver.switch_to.window(new_windows.pop())
Check the order of waiting and switching in the function.
The function waits until a new window appears, then switches to it. This is the correct and robust approach.