that or: wait.until(application as Function)
Cheers, Paul. On Mon, Dec 11, 2017 at 8:46 PM, Mohan Radhakrishnan < radhakrishnan.mo...@gmail.com> wrote: > I posted this too soon. > > This line > > Function<WebDriver, Boolean> application = { wd -> > wd.findElement(By.name("q"))} > > removes that error. Hope this is the right way. > > Thanks, > Mohan > > On 11 December 2017 at 15:06, Mohan Radhakrishnan < > radhakrishnan.mo...@gmail.com> wrote: > >> 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 >> > >