### Feature and motivation

Currently `Select` methods work even the `option` is disabled. Or `select` is disabled.

I suggest these `selectByFoo` methods should throw an exception. 

### Usage example

```java
new Select(element).selectByVisibleText("fish");
```


### Pull request

see https://github.com/SeleniumHQ/selenium/pull/10814
throw new NoSuchElementException("Cannot locate option with index: " + index);
  }
  /**
   * Select or deselect specified option
   *
   * @param option
   *          The option which state needs to be changed
   * @param select
   *          Indicates whether the option needs to be selected (true) or
   *          deselected (false)
   */
  private void setSelected(WebElement option, boolean select) {
    if (option.isSelected() != select) {
      option.click();
    }
  }
  @Override
  public boolean equals(Object o) {
    if (!(o instanceof Select)) {
      return false;
    }
    Select select = (Select) o;
    return Objects.equals(element, select.element);
  }
  @Override
  public int hashCode() {
    return Objects.hash(element);
  }
}