将 Selenium 与 Mozilla 的 GeckoDriver 一起使用时,CircularOutputStream class 未发现异常
CircularOutputStream class not found exception when using Selenium with Mozilla's GeckoDriver
我在使用 Java Selenium Firefox geckodriver 时遇到问题。问题是:
*OS: Windows 7
*Selenium 版本:Selenium 3.0.0 beta4
*Java: 8
*Geckodriver:v0.10.0
Error msg:
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/CircularOutputStream
at org.openqa.selenium.firefox.FirefoxBinary.(FirefoxBinary.java:56)
at org.openqa.selenium.firefox.FirefoxBinary.(FirefoxBinary.java:52)
at 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)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: 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 more
代码:
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 程序(工具包)。
异常是因为 classpath
.
中缺少 jar 文件
如果您不使用 Maven,请检查 Compile Dependencies at MVN Repository page 并手动将 jars 添加到您的 class 路径。
如果您使用的是 Maven,请参阅:
我在使用 Java Selenium Firefox geckodriver 时遇到问题。问题是:
*OS: Windows 7
*Selenium 版本:Selenium 3.0.0 beta4
*Java: 8
*Geckodriver:v0.10.0
Error msg: Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/CircularOutputStream at org.openqa.selenium.firefox.FirefoxBinary.(FirefoxBinary.java:56) at org.openqa.selenium.firefox.FirefoxBinary.(FirefoxBinary.java:52) at 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) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Caused by: 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 more
代码:
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 程序(工具包)。
异常是因为 classpath
.
如果您不使用 Maven,请检查 Compile Dependencies at MVN Repository page 并手动将 jars 添加到您的 class 路径。
如果您使用的是 Maven,请参阅: