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