## 🐛 Bug Report

Running with java binding and Firefox, the framework occasionally throws NullPointerException on the isDisplayed call.

**Please see https://github.com/mozilla/geckodriver/issues/1825 for more information.** As stated from geckodriver team, the issue is apparently related to the custom JS that is executed with this method. The ticket also contains trace logs. 

## To Reproduce

Hard to provide steps, as it happens "randomly".

## Expected behavior

Should not throw exception..

## Environment

OS: Windows 10
Browser: Firefox
Browser version: 84.0.1
Browser Driver version: geckodriver 0.28.0 (c00d2b6acd3f 2020-11-03 16:29 +0200)
Language Bindings version: java 3.141.59

@Beta
  public <X> X getScreenshotAs(OutputType<X> outputType) throws WebDriverException {
    Response response = execute(DriverCommand.ELEMENT_SCREENSHOT(id));
    Object result = response.getValue();
    if (result instanceof String) {
      String base64EncodedPng = (String) result;
      return outputType.convertFromBase64Png(base64EncodedPng);
    } else if (result instanceof byte[]) {
      String base64EncodedPng = new String((byte[]) result, UTF_8);
      return outputType.convertFromBase64Png(base64EncodedPng);
    } else {
      throw new RuntimeException(String.format(
        "Unexpected result for %s command: %s",
        DriverCommand.ELEMENT_SCREENSHOT,
        result == null ? "null" : result.getClass().getName() + " instance"));
    }
  }
  public String toString() {
    if (foundBy == null) {
      return String.format("[%s -> unknown locator]", super.toString());
    }
    return String.format("[%s]", foundBy);
  }
  public Map<String, Object> toJson() {
    return ImmutableMap.of(
      Dialect.OSS.getEncodedElementKey(), getId(),
      Dialect.W3C.getEncodedElementKey(), getId());
  }
}