2017-11-04 126 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. 執行您的測試。