How to select a drop-down menu value with Selenium using Python? How to select a drop-down menu value with Selenium using Python? selenium selenium

How to select a drop-down menu value with Selenium using Python?


Selenium provides a convenient Select class to work with select -> option constructs:

from selenium import webdriverfrom selenium.webdriver.support.ui import Selectdriver = webdriver.Firefox()driver.get('url')select = Select(driver.find_element_by_id('fruits01'))# select by visible textselect.select_by_visible_text('Banana')# select by value select.select_by_value('1')

See also:


Unless your click is firing some kind of ajax call to populate your list, you don't actually need to execute the click.

Just find the element and then enumerate the options, selecting the option(s) you want.

Here is an example:

from selenium import webdriverb = webdriver.Firefox()b.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click()

You can read more in:
https://sqa.stackexchange.com/questions/1355/unable-to-select-an-option-using-seleniums-python-webdriver


I hope this code will help you.

from selenium.webdriver.support.ui import Select

dropdown element with id

ddelement= Select(driver.find_element_by_id('id_of_element'))

dropdown element with xpath

ddelement= Select(driver.find_element_by_xpath('xpath_of_element'))

dropdown element with css selector

ddelement= Select(driver.find_element_by_css_selector('css_selector_of_element'))

Selecting 'Banana' from a dropdown

  1. Using the index of dropdown

ddelement.select_by_index(1)

  1. Using the value of dropdown

ddelement.select_by_value('1')

  1. You can use match the text which is displayed in the drop down.

ddelement.select_by_visible_text('Banana')