that or:

wait.until(application as Function)

Cheers, Paul.

On Mon, Dec 11, 2017 at 8:46 PM, Mohan Radhakrishnan <> wrote:
I posted this too soon.

This line 

Function<WebDriver, Boolean> application =  {  wd -> wd.findElement("q"))}

removes that error. Hope this is the right way.


On 11 December 2017 at 15:06, Mohan Radhakrishnan <> wrote:

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:

                         ieDriver = new ChromeDriver();  
   class Fluent{
     ChromeDriver ieDriver;
     def application =  {  wd -> wd.findElement("q"))}
     Fluent( ChromeDriver ieDriver){
      this.ieDriver = ieDriver;
     public WebElement waitFluently(){
           Wait wait = new FluentWait( ieDriver)
                  .withTimeout(10, SECONDS )
                  .pollingEvery(5, SECONDS)
WebElement foo = wait.until(application);      
                                  WebElement element = new Fluent(ieDriver).waitFluently(); //driver.findElement("q"));
                           }catch(Exception e) {
                        " Exception " + e.getMessage());