2017-03-08 50 views
1

将geckodriver放置在资源中并将其映射到正在工作的机器上,但不在任何其他机器上。我需要它将其导出到其他机器,以便我创建一个需要在任何其他机器上运行的jar,但是在其他机器上运行该jar时抛出“驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性“错误。在intellij中为壁虎驱动程序设置相对路径抛出错误

public static WebDriver createDriver() 
{ 
     WebDriver driver= new FirefoxDriver(); 
     System.setProperty("webdriver.gecko.driver", "./src/main/resources/geckodriver"); 
     driver = new FirefoxDriver(FirefoxDriverProfile()); 
     driver.manage().window().maximize(); 
     DesiredCapabilities capabilities = DesiredCapabilities.firefox(); 
     capabilities.setCapability("marionette", true); 
     return driver; 

[Please take a look at the image] 
https://i.stack.imgur.com/khGBu.png 
+0

可能的复制(http://stackoverflow.com/questions/38676719/selenium-java-the-path-to-the-driver-executable-must-the-by-the-webdr) – Andersson

回答

0

您可以设置它,如: -

System.setProperty("webdriver.gecko.driver", new File("./src/main/resources/geckodriver").getCanonicalPath()); 
+0

这个工作原理是从IDE即intellij运行,但不是从可执行的jar .. –

+0

最新错误ru越来越多? – Paras

1

看来,你缺少的文件扩展名。 我下面的作品使用相对文件路径:

System.setProperty("webdriver.gecko.driver", ".\\WebDrivers\\geckodriver.exe"); 

编辑:您是否尝试过掉这两行的顺序? 除非我错了,系统属性应该在创建WebDriver之前设置。

WebDriver driver= new FirefoxDriver(); 
System.setProperty("webdriver.gecko.driver", "./src/main/resources/geckodriver"); 

应该

System.setProperty("webdriver.gecko.driver", "./src/main/resources/geckodriver"); 
WebDriver driver= new FirefoxDriver(); 
[使用Java硒 - 给司机可执行文件必须由webdriver.gecko.driver系统属性设置的路径]的
+0

忘了说我在一台linux机器上工作.. –

+0

编辑答案。请尝试。 – Inphinitii

+0

这工作时从IDE即intellij运行,但不是从一个可执行的jar ..火狐启动,但不会加载该网址。 –

相关问题