【问题标题】:'Error: java: cannot access java.util.function.Function' - while trying to use WebDriverWait'错误:java:无法访问 java.util.function.Function' - 在尝试使用 WebDriverWait 时
【发布时间】:2019-12-11 00:34:38
【问题描述】:

我正在使用 Maven 和 Intellij,项目集为 jdk-12.0.2,maven 在 pom 1.8 中以及尝试运行此代码时:

WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement el =  wait.until(ExpectedConditions.elementToBeClickable(By.linkText("https://poczta.wp.pl")));

我明白了:

错误:(37, 30) java: 无法访问 java.util.function.Function 类 找不到 java.util.function.Function 的文件

指向“等待”

尝试将 pom 中的 maven 从 1.7 更改为 1.8。 > Invalidate cache/Restart

【问题讨论】:

    标签: java maven selenium


    【解决方案1】:

    鉴于您拥有maven tag,我的期望是您的项目由 Maven 管理,因此由Maven Compiler Plugin 构建,因此您的 IDE 语言级别设置可能源自pom.xml 中定义的内容

    我建议在以下位置设置项目语言级别:

    1. Maven pom.xml file赞:

      <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
      </properties>    
      
    2. In Idea on Project Properties page您可以为每个模块选择语言级别

    更多信息:

    【讨论】:

    • 这也可能与损坏的依赖关系有关,在这种情况下,可以通过删除您的 .m2/corrupted-file-path 来修复它就像这样stackoverflow.com/a/28555124
    【解决方案2】:

    我遇到了同样的问题,使用 JDK 11 创建项目,但项目设置仍在使用语言 7(Ctrl + Shift + Alt + S)

    使用 selenium 版本 3.141.59

    以下是我的原始设置

    解决
    1. pom.xml 内部构建部分但在 pluginManagement 之后添加以下内容

      <plugins><plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>8</source>
        <target>8</target>
      </configuration>
      

    1. 通过(文件 -> 项目结构或使用键盘快捷键 Ctrl + Alt + Shift + S)更改模块设置并将语言级别更改为 8 - Lambda,键入注释等,如下图所示

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多