java.lang.Error:未解决的编译问题:执行selenium测试时无法将WebDriver / ChromeDriver解析为类型错误

时间:2018-05-01 04:58:26

标签: selenium selenium-webdriver webdriver selenium-chromedriver

这是我的代码:

package seleniumTutorials;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class BasicsSelenium {

public static void main(String[] args) {
    boolean status;
    status=true;
    boolean newstatus = false;

    System.out.println("My Old status was "+status);
    System.out.println("My new status was "+newstatus);
    System.setProperty("webdriver.chrome.driver", "F:\\Samraj\\MavenAutomation\\Jar Files\\Selenium Java\\chromedriver.exe");
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--start-maximized");
    WebDriver driver = new ChromeDriver(chromeOptions);
    driver.get("dev.findmyfare.io");
    System.out.println(driver.getTitle());
 }
 }

以下是声明webdriver概念后出现的错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
WebDriver cannot be resolved to a type   ChromeDriver cannot be resolved to a type
    at seleniumTutorials.BasicsSelenium.main(BasicsSelenium.java:13)

注意:我可以执行简单的java程序。

Screenshot of my Eclipse

6 个答案:

答案 0 :(得分:0)

您的代码没有问题。我创建了一个简单的Selenium项目并添加了这段代码,我能够毫无问题地运行此代码。

请注意,在您的外部JAR中,您需要拥有以下jar文件

  • 客户端联合3.11.0.jar
  • 客户端联合3.11.0-sources.jar
  • 字节的好友-1.7.9.jar
  • 公地编解码器1.10.jar
  • 公地EXEC-1.3.jar
  • 共享记录-1.2.jar
  • GSON-2.8.2.jar
  • 番石榴23.6 jre.jar
  • 的HttpClient-4.5.3.jar
  • 的HttpCore-4.4.6.jar
  • 奥基奥-1.13.0.jar
  • okhttp-3.9.1.jar

修改1:同时从ChromeDriver中删除Referenced Libraries

答案 1 :(得分:0)

此错误消息......

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
WebDriver cannot be resolved to a type
ChromeDriver cannot be resolved to a type

...暗示 WebDriver ChromeDriver 未在编译时解决。

根据您分享的快照,您的主要问题是项目空间中存在多个类似的二进制文件,如下所示:

  • 您已将 selenium-server-standalone-3.11.0 作为依赖项。
  • 此外,您已将 selenium-java-3.11.0 中的 Java客户端JAR 作为依赖项。

因此,您很可能从一个JAR资源中解析 WebDriver ChromeDriver (即 selenium-server-standalone-3.11.0 selenium-java-3.11.0 JARs)但 compiletime Classes正试图从其他JAR解析。因此,您会看到 java.lang.Error:未解决的编译问题

解决方案

  • 只保留 selenium-server-standalone-3.11.0 JAR作为外部JAR。
  • 或仅将 selenium-java-3.11.0 JAR保留为外部JAR。
  • 删除所有其他 Selenium Java客户端JAR
  • 通过 IDE 清理您的项目工作区仅使用所需的依赖项重建项目
  • 进行系统重启
  • 执行@Test

答案 2 :(得分:0)

使用IntelliJ IDEA时,我遇到了相同的错误,解决方案是将Gradle文件“ build.gradle”更新为包含

dependencies {
// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'}

test {
useJUnitPlatform()}

答案 3 :(得分:0)

在eclipse中,在添加jar文件时,我们有两个选项,第一个是modulePath,第二个是classPath, 所以你需要在 classPath 中而不是在 ModulePath 中添加所有必需的 jar 文件 它对我有用

答案 4 :(得分:0)

在较旧的 Eclips 中,我们无法选择在类路径或模块路径下添加 jar。

现在我们有一个选项,所以如果你在模块路径中添加了所有有效的 jar 并且仍然出现错误,那么这是因为在模块路径中添加了 jar。

移除 jars 并在 Classpath 下添加

附上截图供参考

Screenshot to fix ChromeDriver cannot be resolved to a type erro

答案 5 :(得分:-1)

创建java项目时选择使用执行环境JRE:JavaSE-1.8