java - 使用 lambda for 机制在 Selenium 中查找元素

标签 java selenium xpath lambda java-8

我有一个使用 lambda 的代码片段,但是出现了错误

"target type of a lambda conversion must be an interface".

有人可以帮忙吗?我的代码如下:

private By optStarGrade = (strStar) -> { By.xpath("//input[@id='" + strStar + "'"); };

最佳答案

By是一个类,所以它不能用作 lambda 表达式的目标类型。

只有具有 SAM(单一抽象方法)的接口(interface)才能用作 lambda 表达式的目标类型。

因此,如果您真的想使用 lambda,请使用 Consumer<String> :

private Consumer<String> optStarGrade = (strStar) -> {By.xpath("//input[@id='" + strStar + "'");};

如果您不想忽略 By.xpath 的返回值然后使用 Function<String, By>

private Function<String, By> optStarGrade = (strStar) -> By.xpath("//input[@id='" + strStar + "'");

参见 FunctionConsumer功能接口(interface)以获取更多信息。

关于java - 使用 lambda for 机制在 Selenium 中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53828987/

相关文章:

javascript - 在不访问对象的情况下以编程方式编辑 CodeMirror 内容

Python 2.7 libxml2,XPath,提取xml属性

java - 使用 Blowfish 时如何修复 Java 中的 NoSuchAlgorithmException?

java - 如何通过java代码将CSV文件数据导入到PostgreSQL表中?

java - 使用 Bean Utils 填充 POJO 时为字段设置默认值

java - 将 FrameLayout 设置为在按钮单击时可见

java - testNG 并行执行不起作用

python - 连接中止错误 : [WinError 10053] An established connection was aborted by the software in your host machine

xpath - 寻找 xdmp :value() vs xdmp:eval() 之间的区别

javascript - document.evaluate JavaScript 在 AppleScript 中不返回任何内容