2017-03-01 64 views
0

我做自動化爲我們的項目之一,我編碼方式類似於下面的.exe文件的路徑:如何獲得駐留在SRC /主/資源

public void m() throws FileNotFoundException, IOException { 
     System.setProperty("webdriver.chrome.driver",Thread.currentThread().getContextClassLoader().getResource("chromedriver.exe").getFile()); 
     System.out.println("123"); 
     WebDriver driver = new ChromeDriver(); 
     driver.get("http://www.google.com"); 
    } 

它的工作當我執行在日食。但是,當我使用Maven生成JAR測試,它給一個例外:在線程

異常「主要」 java.lang.IllegalStateException:驅動程序可執行文件不存在:C:\Users\rkowsu\Desktop\jar\file:\C:\Users\UU1\Desktop\jar\resources-part-0.0.1-SNAPSHOT.jar!\chromedriver.exe

這有什麼錯?

+0

可能的重複[如何在Maven中使用chrome驅動程序](http://stackoverflow.com/questions/35867102/how-to-work-with-chrome-driver-in-maven) –

+0

我經歷過上面的鏈接示例中,他們提到了chromedriver.exe路徑作爲系統路徑,如果我這樣做,它會起作用。但是,我的要求有點不同。我將.exe文件放在src/main/resources下,我得到了帶有java代碼的.exe路徑,正如我提到的那樣。 – Creator

+0

你可以發佈你的POM.xml嗎? –

回答

0

對於System.setProperty()您應該提供"webdriver.chrome.driver"relative\path\to\exe。如果你的項目結構如下:

src 
    main 
      java 
      App.java 
      resources 
      chromedriver.exe 

您應該使用System.setProperty("webdriver.chrome.driver", "src" + File.separator + "main" + File.separator + "resources" + File.separator +"chromedriver.exe")

這應該能夠找到你是否從一個罐子或無法運行.exe文件。

+0

感謝您的回覆喬,它將在個人電腦的Windows eclipse中起作用。但是,當我們將這些代碼作爲jar下載到環境中時,它不起作用。正如@Steve提到的.exe文件不會執行/在jar中執行它的工作,因爲它壓縮在jar中。 – Creator

1

如果您的應用程序的src/main/resources目錄中有chromedriver.exe,那麼它將被打包到您的jar文件中。

它不能從那裏執行。

看看How to work with chrome driver in Maven的答案。

+0

是的。你是對的,將.exe文件打包到jar中。所以.exe文件路徑總是指向Windows資源管理器,但不在jar中? – Creator