What is the purpose of handling multiple pages in Selenium?
To switch control between different browser windows or tabs during automated testing, allowing interaction with elements on each page.
Click to reveal answer
beginner
How do you get all open window handles in Selenium with Python?
Use driver.window_handles which returns a list of all window handles (unique IDs) for open browser windows or tabs.
Click to reveal answer
beginner
Explain how to switch to a new window or tab in Selenium Python.
Use driver.switch_to.window(window_handle) where window_handle is the ID of the target window or tab.
Click to reveal answer
intermediate
Why is it important to switch back to the original window after working on a new tab?
Because Selenium commands act on the current window. Switching back ensures further actions happen on the correct page.
Click to reveal answer
beginner
What is a common real-life example of handling multiple pages in web testing?
Testing a login flow where clicking a link opens a new tab for authentication, then returning to the main page to verify login success.
Click to reveal answer
Which Selenium method returns all open window handles?
Adriver.window_handles
Bdriver.get_window()
Cdriver.switch_to.window()
Ddriver.current_window
✗ Incorrect
driver.window_handles returns a list of all open window handles.
How do you switch control to a new browser tab in Selenium Python?
Adriver.open_tab(new_handle)
Bdriver.switch_to.window(new_handle)
Cdriver.get(new_handle)
Ddriver.change_tab(new_handle)
✗ Incorrect
Use driver.switch_to.window(window_handle) to switch control to the desired tab.
What happens if you try to interact with a page element without switching to its window?
AThe element is found automatically
BNothing happens, test passes
CThe browser closes
DSelenium throws an error because it controls the wrong window
✗ Incorrect
Selenium commands act on the current window. If you don't switch, it can't find elements on other windows.
Which of these is NOT a good practice when handling multiple pages?
AIgnoring window handles and continuing blindly
BClosing windows you no longer need
CStoring window handles for later use
DSwitching back to the original window after work
✗ Incorrect
Ignoring window handles can cause Selenium to act on the wrong window, leading to test failures.
What type of data structure is returned by driver.window_handles?
AString
BDictionary
CList
DInteger
✗ Incorrect
driver.window_handles returns a list of window handle strings.
Describe the steps to handle multiple pages in Selenium Python during a test.
Think about how you move between browser tabs manually.
You got /4 concepts.
Why is switching windows important in automated browser testing?
Imagine trying to talk to a friend in a different room without moving there.
You got /4 concepts.
Practice
(1/5)
1. What does driver.window_handles return in Selenium?
easy
A. The URL of the current page
B. The current active window handle only
C. The title of the current page
D. A list of all open browser window handles
Solution
Step 1: Understand what window handles represent
Window handles are unique IDs for each open browser window or tab.
Step 2: Identify what driver.window_handles returns
This property returns a list of all window handles currently opened by the driver.
Final Answer:
A list of all open browser window handles -> Option D
Quick Check:
window_handles = list of all windows [OK]
Hint: Remember: window_handles lists all open pages [OK]
Common Mistakes:
Confusing window_handles with current window handle
Expecting window_handles to return page titles or URLs
Using window_handles as a single string instead of a list
2. Which is the correct syntax to switch to a new browser tab in Selenium Python?
easy
A. driver.switch_to_tab(driver.window_handles[1])
B. driver.switch_window(driver.window_handles[1])
C. driver.switch_to.window(driver.window_handles[1])
D. driver.change_window(driver.window_handles[1])
Solution
Step 1: Recall the correct method to switch windows
The Selenium method to switch windows is driver.switch_to.window().
Step 2: Check the syntax for switching to the second tab
Use the second handle in the list: driver.window_handles[1].
Final Answer:
driver.switch_to.window(driver.window_handles[1]) -> Option C
Quick Check:
Use switch_to.window with window_handles index [OK]
Hint: Use switch_to.window() with window_handles index [OK]
Common Mistakes:
Using non-existent methods like switch_window or switch_to_tab
Forgetting to use driver.switch_to
Using wrong index for window_handles
3. What will the following code print if two tabs are open and the first tab's title is 'Home' and second tab's title is 'About'?
main_window = driver.current_window_handle
all_windows = driver.window_handles
for window in all_windows:
driver.switch_to.window(window)
print(driver.title)
medium
A. ["Home", "About"]
B. ["About", "Home"]
C. Only "Home"
D. Only "About"
Solution
Step 1: Understand the loop over all window handles
The code loops over all open windows and switches to each one in order.
Step 2: Print the title of each window after switching
It prints the title of each tab in the order of window_handles list, which is usually the order tabs opened.
Final Answer:
["Home", "About"] -> Option A
Quick Check:
Loop prints titles of all tabs in order [OK]
Hint: Loop over window_handles prints all tab titles [OK]
Common Mistakes:
Assuming only current tab title prints
Mixing order of window handles
Not switching before printing title
4. Identify the error in this code snippet that tries to switch back to the main window after opening a new tab:
main_window = driver.current_window_handle
# code to open new tab
driver.switch_to.window(driver.window_handles[1])
# do something
# switch back
driver.switch_to.window(main_window())
medium
A. Missing import for switch_to
B. main_window is called like a function with parentheses
C. driver.window_handles[1] is invalid index
D. No error, code is correct
Solution
Step 1: Check how main_window is used
main_window is a string handle, but code calls main_window() as a function, which is incorrect.
Step 2: Identify correct usage to switch back
Should use driver.switch_to.window(main_window) without parentheses.
Final Answer:
main_window is called like a function with parentheses -> Option B
Quick Check:
Window handle is a string, not a function [OK]
Hint: Window handles are strings, don't add () [OK]
Common Mistakes:
Calling window handle variables as functions
Using wrong index for window_handles
Assuming switch_to needs import
5. You open multiple tabs during a test. How do you ensure you always return to the original tab after closing the new ones?
hard
A. Save the original window handle before opening new tabs and switch back using it
B. Use driver.close() on all tabs except the last one
C. Call driver.quit() to close all tabs and restart the browser
D. Switch to the last window handle in driver.window_handles list
Solution
Step 1: Save the original window handle before opening new tabs
This allows you to remember which tab was the main one.
Step 2: After closing new tabs, switch back to the saved original handle
Use driver.switch_to.window(original_handle) to return safely.
Final Answer:
Save the original window handle before opening new tabs and switch back using it -> Option A
Quick Check:
Save and reuse original handle to return [OK]
Hint: Always save main window handle before opening tabs [OK]
Common Mistakes:
Assuming last window handle is original
Closing tabs without switching back
Using driver.quit() which ends session
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.