### 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
public void shouldIndicateThatASelectCanSupportMultipleOptions() {
    Select select = selectElementWithMultipleEqualTo("multiple");
    assertThat(select.isMultiple()).isTrue();
  }
  @Test
  public void shouldIndicateThatASelectCanSupportMultipleOptionsWithEmptyMultipleAttribute() {
    Select select = selectElementWithMultipleEqualTo("");
    assertThat(select.isMultiple()).isTrue();
  }
  @Test
  public void shouldNotIndicateThatANormalSelectSupportsMultipleOptions() {
    Select select = selectElementWithMultipleEqualTo(null);
    assertThat(select.isMultiple()).isFalse();
  }
  private WebElement mockSelectWebElement(String multiple) {
    final WebElement element = mock(WebElement.class);
    when(element.getTagName()).thenReturn("select");
    when(element.getDomAttribute("multiple")).thenReturn(multiple);
    return element;
  }
  private Select selectWithOptions(List<WebElement> options) {
    final WebElement element = mockSelectWebElement("multiple");
    when(element.findElements(By.tagName("option"))).thenReturn(options);
    return new Select(element);
  }
  @Test
  public void shouldReturnAllOptionsWhenAsked() {
    final List<WebElement> expectedOptions = emptyList();
    Select select = selectWithOptions(expectedOptions);
    assertThat(select.getOptions()).isSameAs(expectedOptions);