This is working for me using UI's Select option. e.g.:

	from selenium.webdriver.support.ui import Select

    driver = webdriver.Chrome()

	select_element = Select(driver.find_element_by_css_selector(".form-control"))
	print [o.text for o in select_element.options] # these are string-s
	select_element.select_by_visible_text("Low Priority")
	# or 
	select_element.select_by_value('0')
	# or 
	select_element.select_by_index(1)

Documentation [here][1] and some credit to Daniel Abel [here][2].

I'm a bit concerned your error may be coming from somewhere else as the error you're getting is selenium unable to find an element with the class of `ng-valid`, which isn't included in your example selenium code. Also, with Angular be sure to throw in a wait for the angular page to load. Like:

    from selenium.webdriver.support.ui import WebDriverWait # Import at top of file
    from selenium.webdriver.support import expected_conditions as EC

    # Selenium waits for the page to load, but not necessarily the angular app
    wait = WebDriverWait(driver, 10)
    wait.until(EC.presence_of_element_located('ng-valid'))

You may want to use [protractor][3] anyway as it has some custom locators for angular and will wait for ng-app to load by default.


  [1]: https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select.html
  [2]: https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver
  [3]: https://github.com/angular/protractor