Class Select

java.lang.Object
org.openqa.selenium.support.ui.Select
All Implemented Interfaces:
ISelect, WrapsElement

public class Select extends Object implements ISelect, WrapsElement
Models a SELECT tag, providing helper methods to select and deselect options.
  • Constructor Details

    • Select

      public Select(WebElement element)
      Constructor. A check is made that the given element is, indeed, a SELECT tag. If it is not, then an UnexpectedTagNameException is thrown.
      Parameters:
      element - SELECT element to wrap
      Throws:
      UnexpectedTagNameException - when element is not a SELECT
  • Method Details

    • getWrappedElement

      public WebElement getWrappedElement()
      Specified by:
      getWrappedElement in interface WrapsElement
    • isMultiple

      public boolean isMultiple()
      Specified by:
      isMultiple in interface ISelect
      Returns:
      Whether this select element support selecting multiple options at the same time? This is done by checking the value of the "multiple" attribute.
    • getOptions

      public List<WebElement> getOptions()
      Specified by:
      getOptions in interface ISelect
      Returns:
      All options belonging to this select tag
    • getAllSelectedOptions

      public List<WebElement> getAllSelectedOptions()
      Specified by:
      getAllSelectedOptions in interface ISelect
      Returns:
      All selected options belonging to this select tag
    • getFirstSelectedOption

      public WebElement getFirstSelectedOption()
      Specified by:
      getFirstSelectedOption in interface ISelect
      Returns:
      The first selected option in this select tag (or the currently selected option in a normal select)
      Throws:
      NoSuchElementException - If no option is selected
    • selectByVisibleText

      public void selectByVisibleText(String text)
      Select all options that display text matching the argument. That is, when given "Bar" this would select an option like:

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

      Specified by:
      selectByVisibleText in interface ISelect
      Parameters:
      text - The visible text to match against
      Throws:
      NoSuchElementException - If no matching option elements are found
    • selectByIndex

      public void selectByIndex(int index)
      Select the option at the given index. This is done by examining the "index" attribute of an element, and not merely by counting.
      Specified by:
      selectByIndex in interface ISelect
      Parameters:
      index - The option at this index will be selected
      Throws:
      NoSuchElementException - If no matching option elements are found
    • selectByValue

      public void selectByValue(String value)
      Select 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>

      Specified by:
      selectByValue in interface ISelect
      Parameters:
      value - The value to match against
      Throws:
      NoSuchElementException - If no matching option elements are found
    • deselectAll

      public void deselectAll()
      Clear all selected entries. This is only valid when the SELECT supports multiple selections.
      Specified by:
      deselectAll in interface ISelect
      Throws:
      UnsupportedOperationException - If the SELECT does not support multiple selections
    • deselectByValue

      public void deselectByValue(String value)
      Deselect all options that have a value matching the argument. That is, when given "foo" this would deselect an option like:

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

      Specified by:
      deselectByValue in interface ISelect
      Parameters:
      value - The value to match against
      Throws:
      NoSuchElementException - If no matching option elements are found
      UnsupportedOperationException - If the SELECT does not support multiple selections
    • deselectByIndex

      public void deselectByIndex(int index)
      Deselect the option at the given index. This is done by examining the "index" attribute of an element, and not merely by counting.
      Specified by:
      deselectByIndex in interface ISelect
      Parameters:
      index - The option at this index will be deselected
      Throws:
      NoSuchElementException - If no matching option elements are found
      UnsupportedOperationException - If the SELECT does not support multiple selections
    • deselectByVisibleText

      public void deselectByVisibleText(String text)
      Deselect all options that display text matching the argument. That is, when given "Bar" this would deselect an option like:

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

      Specified by:
      deselectByVisibleText in interface ISelect
      Parameters:
      text - The visible text to match against
      Throws:
      NoSuchElementException - If no matching option elements are found
      UnsupportedOperationException - If the SELECT does not support multiple selections
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object