将Selenium与Mozilla的GeckoDriver

时间:2016-10-12 22:40:24

标签: java selenium geckodriver

当我使用Java Selenium Firefox geckodriver时出现问题。这是问题所在:

*操作系统:Windows 7

* Selenium版本:Selenium 3.0.0 beta4

* Java:8

* Geckodriver:v0.10.0

  

错误消息:   线程“main”中的异常java.lang.NoClassDefFoundError:org / openqa / selenium / remote / internal / CircularOutputStream       在org.openqa.selenium.firefox.FirefoxBinary。(FirefoxBinary.java:56)       在org.openqa.selenium.firefox.FirefoxBinary。(FirefoxBinary.java:52)       在org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:92)       at tools.Cadencie.LoginCad(Cadencie.java:24)       at tools.Cadencie.main(Cadencie.java:73)       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       at java.lang.reflect.Method.invoke(Method.java:498)       在com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)   引起:java.lang.ClassNotFoundException:org.openqa.selenium.remote.internal.CircularOutputStream       at java.net.URLClassLoader.findClass(URLClassLoader.java:381)       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)       at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)       ......还有10个

代码:

public class Cadencie {

static WebDriver driver;

public void LoginCad(){

    //System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");

    System.setProperty("webdriver.gecko.driver", "C:\\Program Files (x86)\\Mozilla Firefox\\geckodriver.exe");

    driver = new FirefoxDriver();

    driver.get("http://172.16.1.133:8090/CADENCIE/servlet/app");

    try {

        Thread.sleep(1000);

    } catch(InterruptedException e){

        e.printStackTrace();

    }

    Utilities.switchToWindow("Cadencie - User Logon [LOGON]", driver);

    try{

        Thread.sleep(2000);

    } catch(InterruptedException e){

        e.printStackTrace();

    }

    driver.findElement(By.id("idBANK")).clear();
    driver.findElement(By.id("idBANK")).sendKeys("48");

    driver.findElement(By.id("idEMPLOYEE")).clear();
    driver.findElement(By.id("idEMPLOYEE")).sendKeys("200003");

    driver.findElement(By.id("idPASSWORD")).clear();
    driver.findElement(By.id("idPASSWORD")).sendKeys("Cadencie1");

    driver.findElement(By.id("maintLOGON")).click();

    driver.findElement(By.id("idPASSWORD")).clear();
    driver.findElement(By.id("idPASSWORD")).sendKeys("Cadencie1");

    driver.findElement(By.id("maint")).click();

}

我认为这可能是一个不一致的版本问题。因为我有另一个使用maven,selenium 2.52.0的自动化项目..但不确定这是否会导致问题。我这次不是在使用maven。只是尝试创建一个JAVA GUI程序(工具包)。

1 个答案:

答案 0 :(得分:1)

异常是因为classpath中缺少jar文件。

如果您不使用Maven,请检查Compile Dependencies at MVN Repository page并手动将广告罐添加到您的课程路径。

如果您正在使用Maven,请参阅:java.lang.classnotfoundexception: org.openqa.selenium.io.Circular OutputStream