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
    • selectByContainsVisibleText

      public void selectByContainsVisibleText(String text)
      Selects all options that display text matching or containing the provided argument. This method first attempts to find an exact match and, if not found, will then attempt to find options that contain the specified text as a substring.

      For example, when given "Bar", this would select an option like:

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

      And also select an option like:

      <option value="baz">FooBar</option> or <option value="baz">1년납</option> when "1년" is provided.

      Specified by:
      selectByContainsVisibleText in interface ISelect
      Parameters:
      text - The visible text to match against. It can be a full or partial match of the option text.
      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
    • deSelectByContainsVisibleText

      public void deSelectByContainsVisibleText(String text)
      Specified by:
      deSelectByContainsVisibleText in interface ISelect
    • equals

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

      public int hashCode()
      Overrides:
      hashCode in class Object