The @JustinCo answer has a problem if the driver used is not working fast: Capybara will make a driver request for each text call. Therefore, if select contains 200 elements, Capybara will make a 201 request to the browser instead of 1, which can be slow.
I suggest you do this using a single request with Javascript:
periods = page.execute_script("options = document.querySelectorAll('#MainContent_dd > option'); texts=[]; for (i=0; i<options.length; i++) texts.push(options[i].textContent); return texts")
or (shorter version with jQuery):
periods = page.evaluate_script("$('#MainContent_dd').map(function() { return $(this).text() }).get()")
source share