我可以使用getResource打开chromedriver.exe(FireFox / IE)吗? *硒的Java

时间:2016-12-01 11:28:30

标签: java eclipse selenium selenium-chromedriver

我的问题是,我使用Runnable Jar File导出了我的项目(eclipse Java),在我的计算机上它没问题,但在其他计算机上,Runnable不起作用。

这个想法是把chromedriver.exe放在eclipse文件夹上(比如getResource res> images),之后每个人都会得到整个程序。

知道怎么做吗?这是我的代码,chromedrivers在我的C:\:

上是静态的
public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

    System.setProperty("webdriver.chrome.driver","C:\\SeleniumAssets\\chromedriver_win32\\chromedriver.exe");
    DesiredCapabilities capabilities=DesiredCapabilities.chrome();
    capabilities.setCapability("marionette", true);
    driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    driver.get(Constant.URL);


    //signIn.ExecuteGerenteOperacional(driver,Constant.Username_GO,Constant.Password_GO);
    //signIn.ExecuteGerenteLoja(driver,Constant.Username_Gerente_Loja,Constant.Password_Gerente_Loja);
    //signIn.ExecuteVendedor(driver,Constant.Username_Vendedor,Constant.Password_Vendedor);
    ActionsDO();

}

谢谢:)

编辑:

    ClassLoader loader = ClassLoader.getSystemClassLoader();
    URL path = loader.getResource("\\res\\drivers\\chromedriver.exe");
    System.setProperty("webdriver.chrome.driver", path.getPath());

也行不通。

2 个答案:

答案 0 :(得分:0)

如果您可以将驱动程序置于“标准”状态。目录(如用户主目录>驱动程序)可以选择使用独立于操作系统的系统属性:

1)将驱动程序放在ie \ driver \ chromedriver.exe

2)在您的代码中使用:

String userHome = System.getProperty("user.home");
String pathToDriver = userHome + File.separator + "driver" + File.separator + "chromedriver.exe";
System.setProperty("webdriver.chrome.driver", pathToDriver);

HTH

答案 1 :(得分:0)

您应该使用setBinary ChromeOptions ChromeOptions options = new ChromeOptions(); options.setBinary(new File("/path/to/chrome")); ChromeDriver driver = new ChromeDriver(options); 与添加的chromedriver的相对路径,代码来自here

add_action('template_redirect', 'qp_tester');

function qp_tester() {
    if(is_page()){
        echo do_shortcode('[formidable id=36]');
    }
}