Hi, When I try to pass a lambda to a Selenium API call I see this error. Believe this version of Selenium uses Guava lambdas.
I understand that I need to be explicit and specify whether it is a Function or a Predicate. But don't know how to do this with groovy. So here I may have to explicitly declare a Function with an 'apply' method. Cannot resolve which method to invoke for [class Fluent$_closure1] due to overlapping prototypes between: [interface com.google.common.base.Function] [interface com.google.common.base.Predicate] ieDriver = new ChromeDriver(); class Fluent{ ChromeDriver ieDriver; def application = { wd -> wd.findElement(By.name("q"))} Fluent( ChromeDriver ieDriver){ this.ieDriver = ieDriver; } public WebElement waitFluently(){ Wait wait = new FluentWait( ieDriver) .withTimeout(10, SECONDS ) .pollingEvery(5, SECONDS) .ignoring(NoSuchElementException.class); WebElement foo = wait.until(application); } } try{ ieDriver.get("http://www.google.com"); WebElement element = new Fluent(ieDriver).waitFluently(); //driver.findElement(By.name("q")); }catch(Exception e) { log.info(" Exception " + e.getMessage()); }finally{ ieDriver.quit(); } Thanks, Mohan