首页 > 解决方案 > Selenium Java WebDriverWait - 无法访问 java.util.function

问题描述

当我在我的 Java 项目中使用 WebDriverWait 时,IDEA 的响应是:

Error:(17, 9) java: cannot access java.util.function.Function
  class file for java.util.function.Function not found

我在一个类似的项目中使用这个命令,我没有问题。

    @Test
    public void testLogin () {

    new WebDriverWait(driver,20)
        .until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@type='email']")));
    driver.findElement(By.name("email")).clear();
    driver.findElement(By.name("email")).sendKeys(Email);
    driver.findElement(By.name("password")).clear();
    driver.findElement(By.name("password")).sendKeys(Password);
    driver.findElement(By.name("submit")).click();

标签: javaseleniumwebdriverwait

解决方案


有点不清楚你的项目是如何构建的,如果你有:

  • 下载了标准的Seleniu-Java客户端 jars 或
  • 使用MavenGradle

可能,您正在使用Maven,并且根据Error:(57, 38) java: The type java.util.function.Function 无法解析。它是从所需的 .class 文件中间接引用的,此问题是由在pom.xml中将Java 1.7指定为目标版本引起的。

java.util.function.FunctionJava 1.8添加

解决方案:

  • 更新到JDK v1.8
  • 如果使用Maven,请更新:

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
  • 如果使用Gradle,请将以下内容添加到您的build.gradle文件中

    plugins {
         id 'java'
    }
    
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
    version = '1.2.1'
    
  • 通过您的IDE(从Project -> Clean ...)清理您的项目工作区,并使用所需的依赖项重建您的项目。


推荐阅读