Challenge - 5 Problems
Right Click Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this Selenium Python code snippet?
Consider the following Selenium Python code that performs a right-click on a web element. What will be printed if the context click is successful and the alert text is 'Context menu opened'?
Selenium Python
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By # Assume driver is already initialized and navigated to the page button = driver.find_element(By.ID, 'menu-button') actions = ActionChains(driver) actions.context_click(button).perform() alert = driver.switch_to.alert print(alert.text) alert.accept()
Attempts:
2 left
💡 Hint
Think about what the alert text would be after a successful right-click triggers a context menu alert.
✗ Incorrect
The code performs a right-click on the element with ID 'menu-button'. If this triggers an alert with text 'Context menu opened', then printing alert.text outputs exactly that string.
❓ assertion
intermediate2:00remaining
Which assertion correctly verifies a right-click context menu is displayed?
You want to assert that after a right-click on an element, a context menu with id 'context-menu' becomes visible. Which assertion is correct?
Selenium Python
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # Assume driver and actions are set up button = driver.find_element(By.ID, 'menu-button') actions.context_click(button).perform() wait = WebDriverWait(driver, 10)
Attempts:
2 left
💡 Hint
You want to check if the context menu is visible after right-click, not invisible or clickable.
✗ Incorrect
Option B waits until the context menu element is visible, which confirms the right-click opened it. Other options check for invisibility, clickability of the button, or alert presence, which are not correct here.
❓ locator
advanced2:00remaining
Which locator is best to find a context menu item labeled 'Delete' for right-click testing?
You want to locate the 'Delete' option inside a context menu that appears after right-click. The menu items are elements inside a
- with id 'context-menu'. Which locator is best?
Attempts:
2 left
💡 Hint
Remember CSS selectors do not support :contains, and IDs must be unique and present.
✗ Incorrect
Option A uses XPath to find an with exact text 'Delete' inside the context menu. Option A uses :contains which is not valid in CSS selectors. Option A assumes 'Delete' is an ID which is unlikely. Option A depends on class presence which is not guaranteed.
🔧 Debug
advanced2:00remaining
Why does this right-click test fail with ElementNotInteractableException?
Given this code snippet, the test fails with ElementNotInteractableException. What is the most likely cause?
Selenium Python
button = driver.find_element(By.ID, 'menu-button')
actions = ActionChains(driver)
actions.context_click(button).perform()Attempts:
2 left
💡 Hint
ElementNotInteractableException usually means the element cannot be clicked because it is not visible or enabled.
✗ Incorrect
ElementNotInteractableException occurs when the element is present but not visible or disabled, so Selenium cannot perform actions on it. Other options would cause different errors.
❓ framework
expert3:00remaining
How to integrate right-click context menu test in pytest with setup and teardown?
You want to write a pytest test function that opens a browser, navigates to a page, performs a right-click on an element with ID 'menu-button', verifies the context menu appears, and then closes the browser. Which code snippet correctly implements this?
Attempts:
2 left
💡 Hint
Use pytest fixtures for setup and teardown to manage the driver lifecycle cleanly.
✗ Incorrect
Option C uses pytest fixture to initialize and quit the driver, and the test function uses explicit waits to assert visibility. Option C quits driver inside test which is less clean. Option C uses unittest, not pytest. Option C uses global driver which is not recommended in pytest.