Explain why ExpectedCondition continues to extend guava's Function
It's to avoid having users rewrite code. We're so
dependent on the library it doesn't make sense to
remove a single call site.
*
* @param <T> The return type
*/
+// NB: this originally extended Guava's Function interface since Java didn't have one. To avoid code
+// such as "com.google.common.base.Function condition = ExpectedConditions.elementFound(By);"
+// breaking at compile time, we continue to extend Guava's Function interface.
public interface ExpectedCondition<T> extends Function<WebDriver, T> {}
