At first, I tried to click the option like this:
select_elem = driver.find_element_by_xpath("//select[@name='" + select_name + "']")
select_elem.click()
option_elem = select_elem.find_element_by_xpath("./option[contains(text(),'" + option_text + "')]")
option_elem.click()
or
select_elem = driver.find_element_by_xpath("//select[@name='" + select_name + "']")
for option in select_elem.find_elements_by_tag_name('option'):
if option.text == option_text:
option.click() # select() in earlier versions of webdriver
break
But, click functionality does not work consistently. so, I changed the code like this:
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_xpath("//select[@name='"+select_name+"']"))
select.select_by_visible_text(option_text)
It works well!