0
0
Selenium Pythontesting~20 mins

Click and hold in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Click and Hold Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this Selenium Python code snippet?
Consider the following Selenium Python code that performs a click and hold action on a button. What will be printed after execution?
Selenium Python
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

class DummyElement:
    def __init__(self):
        self.clicked = False
    def click(self):
        self.clicked = True
    def is_clicked(self):
        return self.clicked

# Simulated element
button = DummyElement()

# Simulate click and hold
actions = ActionChains(None)
actions.click_and_hold(button).perform()

print(button.is_clicked())
ATypeError
BAttributeError
Ctrue
Dfalse
Attempts:
2 left
💡 Hint
Think about whether the DummyElement's click method is called during click_and_hold.
locator
intermediate
2:00remaining
Identify the best locator for click and hold action
You want to perform a click and hold on a button with the text 'Submit' inside a form. Which locator is the best practice for this action?
Adriver.find_element(By.ID, 'submit')
Bdriver.find_element(By.CSS_SELECTOR, 'button.submit-btn')
Cdriver.find_element(By.XPATH, '//button[text()=\'Submit\']')
Ddriver.find_element(By.TAG_NAME, 'button')
Attempts:
2 left
💡 Hint
IDs are unique and fast to locate.
assertion
advanced
2:00remaining
Which assertion correctly verifies click and hold effect?
After performing click and hold on a draggable element, you expect its CSS class to include 'dragging'. Which assertion correctly verifies this?
Selenium Python
element = driver.find_element(By.ID, 'draggable')
actions = ActionChains(driver)
actions.click_and_hold(element).perform()

# Which assertion below is correct?
Aassert 'dragging' in element.get_attribute('class')
Bassert element.get_attribute('dragging') == 'true'
Cassert element.is_displayed() == 'dragging'
Dassert element.text == 'dragging'
Attempts:
2 left
💡 Hint
Check the element's class attribute for the 'dragging' keyword.
🔧 Debug
advanced
2:00remaining
Why does this click and hold test fail?
This Selenium Python test tries to click and hold a button but fails with ElementNotInteractableException. What is the likely cause?
Selenium Python
button = driver.find_element(By.ID, 'submit')
actions = ActionChains(driver)
actions.click_and_hold(button).perform()
AThe locator is incorrect and finds no element
Bclick_and_hold only works on input fields
CThe button is not visible or is covered by another element
DActionChains requires a double click before click_and_hold
Attempts:
2 left
💡 Hint
ElementNotInteractableException usually means the element cannot be clicked because it is hidden or overlapped.
framework
expert
3:00remaining
How to implement a reusable click and hold helper in Selenium Python?
You want to create a reusable function in your Selenium Python test framework that performs click and hold on any element given its locator. Which implementation is correct and follows best practices?
A
def click_and_hold(driver, locator):
    element = driver.find_element(locator)
    actions = ActionChains(driver)
    actions.click_and_hold(element).perform()
B
def click_and_hold(driver, by, value):
    element = driver.find_element(by, value)
    actions = ActionChains(driver)
    actions.click_and_hold(element).perform()
C
def click_and_hold(driver, by, value):
    element = driver.find_element(by, value)
    element.click()
    actions = ActionChains(driver)
    actions.click_and_hold(element).perform()
D
def click_and_hold(driver, by, value):
    element = driver.find_element(by, value)
    actions = ActionChains(driver)
    actions.click(element).perform()
    actions.click_and_hold(element).perform()
Attempts:
2 left
💡 Hint
Use correct parameters and call find_element with by and value separately.