2017-11-04 127 views
-1

我想打开火狐56与Selenium 3.7发布日期为2017年11月2日,我的Win 8.1的路径也设置在环境变量too.I获取NoClassDefFoundError火狐56.0是不是开放使用Selenium 3.7与壁虎驱动0.19

错误截图:https://snag.gy/mI23xp.jpg

版本信息: 的Java 1.8.091 | Selenium 3.7 | Gecko驱动程序geckodriver-v0.19.1-win64.zip |火狐56

我的代码:从类似的问题

package new_Package; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.firefox.FirefoxDriver; 

    public class Selenium_Basics { 
     public static void main(String[] args) throws InterruptedException { 
      System.setProperty("webdriver.gecko.driver", "C:\\Users\\user\\workspace\\Gecko Driver\\geckodriver.exe"); 
      WebDriver driver = new FirefoxDriver(); 
      driver.get("http://www.google.com"); 
     } 
    } 

我试图解决方法的计算器和其他网站建议喜欢用不同的Firefox版本尝试,设定DesiredCapabilities或建立二进制文件火狐但什么也仍然工作出。

另外我最近试图在检查点调试。

​​

错误堆栈跟踪:

调试1

Exception in thread "main" org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:12121 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect 
Build info: version: '3.7.0', revision: '2321c73', time: '2017-11-02T22:12:07.291Z' 
System info: host: 'LENOVO', ip: '192.168.0.6', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_91' 
Driver info: driver.version: FirefoxDriver 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:98) 
    at new_Package.Selenium_Basics.main(Selenium_Basics.java:12) 
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:12121 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) 
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) 
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) 
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:138) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:86) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) 
    ... 6 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) 
    ... 21 more 
+0

的可能的复制[NoClassDefFoundError的:在硒为ChromeDriver组织/阿帕奇/ HTTP/HttpEntity](https://stackoverflow.com/questions/23471340/noclassdeffounderror-org-apache-http-httpentity-in-selenium对于chromedriver) – JeffC

+0

@JeffC:我试过了,但是没有帮助。我甚至试着把Firefox的版本降级到45. –

+0

你说过'我没有配置Selenium独立服务器jar'。那就是问题所在。你需要添加那个jar。 – JeffC

回答

0

我没有看到任何这样的错误在你的代码块。当JRE找不到Class时,观察到错误NoClassDefFoundError

简而言之,所需的importsjar文件不可用。在这种情况下,你需要遵循以下步骤:

  1. 删除所有涉及到以前的版本Selenium standalone server & Selenium Java client
  2. 仅导入selenium-server-standalone-3.7.0的罐子。
  3. 在你IDEProject菜单,选择选项Build Automatically并执行所有项目的Clean选项。
  4. 执行您的测试。