### Home Classes Methods

### In Files

- lib/selenium/webdriver/support/select.rb

### Parent

Object

### Namespace

- MODULE Selenium::WebDriver::Support::Select::Escaper

### Methods

- ::new
- #deselect_all
- #deselect_by
- #first_selected_option
- #multiple?
- #options
- #select_all
- #select_by
- #selected_options

### Class/Module Index

Quicksearch

- Selenium
- Selenium::Client
- Selenium::Client::Base
- Selenium::Client::CommandError
- Selenium::Client::Driver
- Selenium::Client::Extensions
- Selenium::Client::GeneratedDriver
- Selenium::Client::Idiomatic
- Selenium::Client::JavascriptExpressionBuilder
- Selenium::Client::JavascriptFrameworks
- Selenium::Client::JavascriptFrameworks::JQuery
- Selenium::Client::JavascriptFrameworks::Prototype
- Selenium::Client::Protocol
- Selenium::Client::ProtocolError
- Selenium::Client::SeleniumHelper
- Selenium::Rake
- Selenium::Rake::MissingJarFileError
- Selenium::Rake::ServerTask
- Selenium::Server
- Selenium::Server::Error
- Selenium::WebDriver
- Selenium::WebDriver::ActionBuilder
- Selenium::WebDriver::Alert
- Selenium::WebDriver::Android
- Selenium::WebDriver::Android::Bridge
- Selenium::WebDriver::BridgeHelper
- Selenium::WebDriver::Chrome
- Selenium::WebDriver::Chrome::Bridge
- Selenium::WebDriver::Chrome::Profile
- Selenium::WebDriver::Chrome::Service
- Selenium::WebDriver::Driver
- Selenium::WebDriver::DriverExtensions
- Selenium::WebDriver::DriverExtensions::HasBrowserConnection
- Selenium::WebDriver::DriverExtensions::HasInputDevices
- Selenium::WebDriver::DriverExtensions::HasLocation
- Selenium::WebDriver::DriverExtensions::HasSessionId
- Selenium::WebDriver::DriverExtensions::HasTouchScreen
- Selenium::WebDriver::DriverExtensions::HasWebStorage
- Selenium::WebDriver::DriverExtensions::Rotatable
- Selenium::WebDriver::DriverExtensions::TakesScreenshot
- Selenium::WebDriver::DriverExtensions::UploadsFiles
- Selenium::WebDriver::Element
- Selenium::WebDriver::Error
- Selenium::WebDriver::Error::ElementNotDisplayedError
- Selenium::WebDriver::Error::ElementNotSelectableError
- Selenium::WebDriver::Error::ElementNotVisibleError
- Selenium::WebDriver::Error::ExpectedError
- Selenium::WebDriver::Error::IMEEngineActivationFailedError
- Selenium::WebDriver::Error::IMENotAvailableError
- Selenium::WebDriver::Error::IndexOutOfBoundsError
- Selenium::WebDriver::Error::InvalidCookieDomainError
- Selenium::WebDriver::Error::InvalidElementCoordinatesError
- Selenium::WebDriver::Error::InvalidElementStateError
- Selenium::WebDriver::Error::InvalidSelectorError
- Selenium::WebDriver::Error::JavascriptError
- Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
- Selenium::WebDriver::Error::NoAlertOpenError
- Selenium::WebDriver::Error::NoAlertPresentError
- Selenium::WebDriver::Error::NoCollectionError
- Selenium::WebDriver::Error::NoScriptResultError
- Selenium::WebDriver::Error::NoStringError
- Selenium::WebDriver::Error::NoStringLengthError
- Selenium::WebDriver::Error::NoStringWrapperError
- Selenium::WebDriver::Error::NoSuchCollectionError
- Selenium::WebDriver::Error::NoSuchDocumentError
- Selenium::WebDriver::Error::NoSuchDriverError
- Selenium::WebDriver::Error::NoSuchElementError
- Selenium::WebDriver::Error::NoSuchFrameError
- Selenium::WebDriver::Error::NoSuchWindowError
- Selenium::WebDriver::Error::NullPointerError
- Selenium::WebDriver::Error::ObsoleteElementError
- Selenium::WebDriver::Error::ScriptTimeOutError
- Selenium::WebDriver::Error::ServerError
- Selenium::WebDriver::Error::StaleElementReferenceError
- Selenium::WebDriver::Error::TimeOutError
- Selenium::WebDriver::Error::UnableToSetCookieError
- Selenium::WebDriver::Error::UnexpectedJavascriptError
- Selenium::WebDriver::Error::UnhandledAlertError
- Selenium::WebDriver::Error::UnhandledError
- Selenium::WebDriver::Error::UnknownCommandError
- Selenium::WebDriver::Error::UnknownError
- Selenium::WebDriver::Error::UnsupportedOperationError
- Selenium::WebDriver::Error::WebDriverError
- Selenium::WebDriver::Error::XPathLookupError
- Selenium::WebDriver::FileReaper
- Selenium::WebDriver::Firefox
- Selenium::WebDriver::Firefox::Binary
- Selenium::WebDriver::Firefox::Bridge
- Selenium::WebDriver::Firefox::Extension
- Selenium::WebDriver::Firefox::Launcher
- Selenium::WebDriver::Firefox::Profile
- Selenium::WebDriver::Firefox::ProfilesIni
- Selenium::WebDriver::Firefox::SocketLock
- Selenium::WebDriver::Firefox::Util
- Selenium::WebDriver::HTML5
- Selenium::WebDriver::HTML5::LocalStorage
- Selenium::WebDriver::HTML5::SessionStorage
- Selenium::WebDriver::HTML5::SharedWebStorage
- Selenium::WebDriver::IE
- Selenium::WebDriver::IE::Bridge
- Selenium::WebDriver::IE::Server
- Selenium::WebDriver::IPhone
- Selenium::WebDriver::IPhone::Bridge
- Selenium::WebDriver::JsonHelper
- Selenium::WebDriver::Keyboard
- Selenium::WebDriver::Keys
- Selenium::WebDriver::LogEntry
- Selenium::WebDriver::Mouse
- Selenium::WebDriver::Navigation
- Selenium::WebDriver::Opera
- Selenium::WebDriver::Opera::Bridge
- Selenium::WebDriver::Opera::Service
- Selenium::WebDriver::Options
- Selenium::WebDriver::PhantomJS
- Selenium::WebDriver::PhantomJS::Bridge
- Selenium::WebDriver::PhantomJS::Service
- Selenium::WebDriver::Platform
- Selenium::WebDriver::PortProber
- Selenium::WebDriver::ProfileHelper
- Selenium::WebDriver::ProfileHelper::ClassMethods
- Selenium::WebDriver::Proxy
- Selenium::WebDriver::Remote
- Selenium::WebDriver::Remote::Bridge
- Selenium::WebDriver::Remote::Capabilities
- Selenium::WebDriver::Remote::Http
- Selenium::WebDriver::Remote::Http::Common
- Selenium::WebDriver::Remote::Http::Curb
- Selenium::WebDriver::Remote::Http::Default
- Selenium::WebDriver::Remote::Http::Persistent
- Selenium::WebDriver::Remote::Response
- Selenium::WebDriver::Safari
- Selenium::WebDriver::Safari::Bridge
- Selenium::WebDriver::Safari::Browser
- Selenium::WebDriver::Safari::Extension
- Selenium::WebDriver::Safari::Server
- Selenium::WebDriver::SearchContext
- Selenium::WebDriver::SocketPoller
- Selenium::WebDriver::Support
- Selenium::WebDriver::Support::AbstractEventListener
- Selenium::WebDriver::Support::BlockEventListener
- Selenium::WebDriver::Support::Color
- Selenium::WebDriver::Support::EventFiringBridge
- Selenium::WebDriver::Support::Select
- Selenium::WebDriver::Support::Select::Escaper
- Selenium::WebDriver::TargetLocator
- Selenium::WebDriver::Timeouts
- Selenium::WebDriver::TouchActionBuilder
- Selenium::WebDriver::TouchScreen
- Selenium::WebDriver::Wait
- Selenium::WebDriver::Window
- Selenium::WebDriver::Zipper
- Base64
- Dir
- SocketError
- String

No matching classes.

# Selenium::WebDriver::Support::Select

### Public Class Methods

new(element) click to toggle source

@param [Element] element The select element to use

    # File lib/selenium/webdriver/support/select.rb, line 10
    def initialize(element)
      tag_name = element.tag_name

      unless tag_name.downcase == "select"
        raise ArgumentError, "unexpected tag name #{tag_name.inspect}"
      end

      @element = element
      @multi   = ![nil, "false"].include?(element.attribute(:multiple))
    end

### Public Instance Methods

deselect_all() click to toggle source

Deselect all selected options. Only valid if the element supports multiple selections.

@raise [Error::UnsupportedOperationError] if the element does not support multiple selections.

    # File lib/selenium/webdriver/support/select.rb, line 138
    def deselect_all
      unless multiple?
        raise Error::UnsupportedOperationError, 'you may only deselect all options of a multi-select'
      end

      options.each { |e| deselect_option e }
    end

deselect_by(how, what) click to toggle source

Deselect options by visible text, index or value.

@param [:text, :index, :value] how How to find the option @param [String] what What value to find the option by.

@see Select#select_by

    # File lib/selenium/webdriver/support/select.rb, line 105
    def deselect_by(how, what)
      case how
      when :text
        deselect_by_text what
      when :value
        deselect_by_value what
      when :index
        deselect_by_index what
      else
        raise ArgumentError, "can't deselect options by #{how.inspect}"
      end
    end

first_selected_option() click to toggle source

Get the first selected option in this select element

@raise [Error::NoSuchElementError] if no options are selected @return [Element]

    # File lib/selenium/webdriver/support/select.rb, line 58
    def first_selected_option
      option = options.find { |e| e.selected? }
      option or raise Error::NoSuchElementError, 'no options are selected'
    end

multiple?() click to toggle source

Does this select element support selecting multiple options?

@return [Boolean]

    # File lib/selenium/webdriver/support/select.rb, line 27
    def multiple?
      @multi
    end

options() click to toggle source

Get all options for this select element

@return [Array<Element>]

    # File lib/selenium/webdriver/support/select.rb, line 37
    def options
      @element.find_elements :tag_name, 'option'
    end

select_all() click to toggle source

Select all unselected options. Only valid if the element supports multiple selections.

@raise [Error::UnsupportedOperationError] if the element does not support multiple selections.

    # File lib/selenium/webdriver/support/select.rb, line 124
    def select_all
      unless multiple?
        raise Error::UnsupportedOperationError, 'you may only select all options of a multi-select'
      end

      options.each { |e| select_option e }
    end

select_by(how, what) click to toggle source

Select options by visible text, index or value.

When selecting by :text, selects options that display text matching the argument. That is, when given "Bar" this would select an option like:

    <option value="foo">Bar</option>

When slecting by :value, selects all options that have a value matching the argument. That is, when given "foo" this would select an option like:

    <option value="foo">Bar</option>

When selecting by :index, selects the option at the given index. This is done by examining the "index" attribute of an element, and not merely by counting.

@param [:text, :index, :value] how How to find the option @param [String] what What value to find the option by.

    # File lib/selenium/webdriver/support/select.rb, line 83
    def select_by(how, what)
      case how
      when :text
        select_by_text what
      when :index
        select_by_index what
      when :value
        select_by_value what
      else
        raise ArgumentError, "can't select options by #{how.inspect}"
      end
    end

selected_options() click to toggle source

Get all selected options for this select element

@return [Array<Element>]

    # File lib/selenium/webdriver/support/select.rb, line 47
    def selected_options
      options.select { |e| e.selected? }
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.