【问题标题】:Webdriver : ChromeDriver : Accessing From Within Framework Jar FileWebdriver:ChromeDriver:从框架 Jar 文件中访问
【发布时间】:2015-11-12 10:18:22
【问题描述】:

我正在使用 Java 中的 selenium webdriver 开发一个框架。我有两个 Maven 项目。一个用于框架,另一个用于测试项目。

为了启动 ChromeDriver,我需要使用 chromedriver.exe 文件的路径设置系统属性。我在框架项目的 /src/main/java 中的 DriverFactory.java 中执行此操作。现在,如果我将 exe 文件放在 src/main/resources/drivers 中,Java 会抱怨找不到该文件。代码是:

private static String chromeDriverLocation = "drivers/chromedriver.exe";
File cDriver = new File(DriverFactory.class.getResource(chromeDriverLocation).getFile());
// Is it executable
  if (!cDriver.canExecute()) {
     cDriver.setExecutable(true);
  }
  System.setProperty("webdriver.chrome.driver", DriverFactory.class.getResource(chromeDriverLocation).getFile());

我尝试将此文件放在测试项目中的 src/main/resources/drivers 并修改代码如下:

private static String chromeDriverLocation = System.getProperty("user.dir")+ "\\classes\\drivers\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", chromeDriverLocation);

虽然上面的代码在通过 Jenkins(Maven) 执行时可以在本地工作,但我不确定这是否是最好的方法。有人可以提出其他实现这一目标的好方法吗?

【问题讨论】:

    标签: java maven selenium webdriver


    【解决方案1】:

    作为一个选项,您可以将 chromedriver.exe 文件放入添加到 PATH 的目录中。在这种情况下,运行 ChromeDriver 就像创建 new ChromeDriver() 的实例一样简单,无需处理系统属性。

    如果您仍想将 chromedriver.exe 存储在 Resources 下,可以将其作为 steam 获取,保存到文件并设置“webdriver.chrome.driver”属性:

    InputStream in = getClass().getResourceAsStream("chromedriver.exe");
    OutputStream out = new FileOutputStream("chromedriver.exe");
    IOUtils.copy(in, out);
    

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 2011-08-12
      • 2015-08-23
      • 2010-12-11
      • 2012-01-18
      • 2011-11-14
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多