0
0
Selenium Pythontesting~20 mins

Select by value, text, index in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Dropdown Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
What is the output of selecting option by value?

Given a dropdown with options having values '1', '2', '3', what will be the selected option text after selecting by value '2'?

Selenium Python
from selenium.webdriver.support.ui import Select

class DummySelect:
    def __init__(self):
        self.options = [{'value': '1', 'text': 'One'}, {'value': '2', 'text': 'Two'}, {'value': '3', 'text': 'Three'}]
        self.selected_option = None
    def select_by_value(self, value):
        for option in self.options:
            if option['value'] == value:
                self.selected_option = option['text']
                break
        else:
            self.selected_option = None

select = DummySelect()
select.select_by_value('2')
result = select.selected_option
A"1"
B"Two"
C"Three"
D"None"
Attempts:
2 left
💡 Hint

Remember, selecting by value matches the option's value attribute, not its text.

query_result
intermediate
2:00remaining
What is the selected option text after selecting by visible text?

Given a dropdown with options 'Apple', 'Banana', 'Cherry', what will be the selected option value after selecting by visible text 'Banana'?

Selenium Python
from selenium.webdriver.support.ui import Select

class DummySelect:
    def __init__(self):
        self.options = [{'value': 'a', 'text': 'Apple'}, {'value': 'b', 'text': 'Banana'}, {'value': 'c', 'text': 'Cherry'}]
        self.selected_value = None
    def select_by_visible_text(self, text):
        for option in self.options:
            if option['text'] == text:
                self.selected_value = option['value']
                break
        else:
            self.selected_value = None

select = DummySelect()
select.select_by_visible_text('Banana')
result = select.selected_value
A"b"
B"None"
C"a"
D"Banana"
Attempts:
2 left
💡 Hint

Selecting by visible text matches the option's text, but the result asked is the value attribute.

query_result
advanced
2:00remaining
What is the selected option text after selecting by index 1?

Given a dropdown with options ['Red', 'Green', 'Blue'], what is the selected option text after selecting by index 1?

Selenium Python
from selenium.webdriver.support.ui import Select

class DummySelect:
    def __init__(self):
        self.options = [{'value': 'r', 'text': 'Red'}, {'value': 'g', 'text': 'Green'}, {'value': 'b', 'text': 'Blue'}]
        self.selected_option = None
    def select_by_index(self, index):
        if 0 <= index < len(self.options):
            self.selected_option = self.options[index]['text']
        else:
            self.selected_option = None

select = DummySelect()
select.select_by_index(1)
result = select.selected_option
A"Green"
B"Red"
C"Blue"
D"None"
Attempts:
2 left
💡 Hint

Indexing starts at 0, so index 1 is the second option.

📝 Syntax
advanced
2:00remaining
Which option causes a SyntaxError when selecting by value?

Identify the code snippet that will cause a syntax error when trying to select an option by value.

Selenium Python
from selenium.webdriver.support.ui import Select

select = Select(driver.find_element_by_id('dropdown'))
Aselect.select_by_value('option1')
Bselect.select_by_value('option1'
Cselect.select_by_value('option1'))
Dselect.select_by_value(option1)
Attempts:
2 left
💡 Hint

Look for missing quotes or parentheses.

🔧 Debug
expert
3:00remaining
Why does selecting by index 5 cause an error?

Given a dropdown with 4 options, what error occurs when selecting by index 5 and why?

Selenium Python
from selenium.webdriver.support.ui import Select

class DummySelect:
    def __init__(self):
        self.options = [{'value': '1', 'text': 'One'}, {'value': '2', 'text': 'Two'}, {'value': '3', 'text': 'Three'}, {'value': '4', 'text': 'Four'}]
    def select_by_index(self, index):
        return self.options[index]['text']

select = DummySelect()
result = select.select_by_index(5)
AKeyError because 'text' key is missing
BNo error, returns 'Four'
CTypeError because options is not a list
DIndexError because index 5 is out of range
Attempts:
2 left
💡 Hint

Check the length of the options list and the index used.