java - 显式等待的 Selenium Java Lambda 实现

标签 java selenium-webdriver lambda

我正在尝试为 selenium webdriver 等待实现 Java Lambda 概念。我需要转换自定义 webdriver 等等

  (new WebDriverWait(driver(), 5))
            .until(new ExpectedCondition<WebElement>() {
                public WebElement apply(WebDriver d) {
                    return d.findElement(By.linkText(""));
                }
            });

 (new WebDriverWait(driver(), 5)).until((driver) -> driver.findElement(By.linkText("")));

但它不匹配'until'引用的功能接口(interface)并抛出错误。

所以我尝试通过它支持的 Lambda。

尝试1

Predicate<WebDriver> isVisible = (dr) -> dr.findElement(
     By.linkText("")).isDisplayed();
     webDriverWait.until(isVisible);

它有点用,但不是我所需要的,因为它只返回 void。

需要您的帮助或建议。

最佳答案

问题出在你的语法上。下面的代码对我来说非常有用

WebElement wer = new WebDriverWait(driver, 5).until((WebDriver dr1) -> dr1.findElement(By.id("q")));

你的代码问题

 //What is this driver() is this a function that returns the driver or what
 //You have to defined the return type of driver variable in until() function
 //And you cant use the same  variable names in both new WebdriverWait() and until() see my syntax

(new WebDriverWait(driver(), 5)).until((driver) -> driver.findElement(By.linkText("")));

关于java - 显式等待的 Selenium Java Lambda 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102351/

相关文章:

java - 为什么@ApiModelProperty "name"属性没有效果?

java - JAX-RS 注释 : Better to put on Interfaces or Classes?

node.js - Webdriver - 如何通过 xpath/css 访问某些特定的 iFrame

java - 对于页面对象类中的方法,使用 public void 还是 public [页面名称] 更好?

java - 将多个 JComponent 绘制到框架中

java - 删除 <String> ArrayList-Java 的元素

java - 处理 id 不断变化的元素

c# - 获取字典中所有值的 Lambda 表达式

JavaFX 8 如何使用零参数执行 lambda 表达式

python - heapq.nlargest() 的关键函数