Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我将测试导出到可执行Jar时,如何在可执行Jar文件中包含Chrome驱动程序_Java_Selenium Chromedriver - Fatal编程技术网

Java 当我将测试导出到可执行Jar时,如何在可执行Jar文件中包含Chrome驱动程序

Java 当我将测试导出到可执行Jar时,如何在可执行Jar文件中包含Chrome驱动程序,java,selenium-chromedriver,Java,Selenium Chromedriver,我正试图将我的测试用例导出到一个可执行的jar中,这样我就可以在任何地方或任何机器上运行它们,但是我遇到了Chrom驱动程序不是由system.Property设置的问题。我需要一个解决方案,我可以将我的代码导出到可执行的jar中,并包含Chrome Drivre,这样即使没有Chrome Drivre,它也可以在任何机器上运行 我尝试在环境变量和Selenium路径上包含Chrome驱动程序。 我还尝试在项目资源下添加Chrome驱动程序,但没有任何效果 public

我正试图将我的测试用例导出到一个可执行的jar中,这样我就可以在任何地方或任何机器上运行它们,但是我遇到了Chrom驱动程序不是由system.Property设置的问题。我需要一个解决方案,我可以将我的代码导出到可执行的jar中,并包含Chrome Drivre,这样即使没有Chrome Drivre,它也可以在任何机器上运行

我尝试在环境变量和Selenium路径上包含Chrome驱动程序。 我还尝试在项目资源下添加Chrome驱动程序,但没有任何效果

            public WebDriver OpenCPURL()  {


    PropertyConfigurator.configure("Log4j.properties");
    //System.setProperty("webdriver.chrome.driver",  
            "./chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("disable-infobars");
    options.addArguments("--start-maximized");

    WebDriver driver = new ChromeDriver(options);

    //driver = new ChromeDriver();

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    //driver.manage().window().maximize();
    wait = new WebDriverWait(driver, 60);
    baseUrl = "http://3ddxtesting/newcp/";
    driver.get(baseUrl);
    user_name = driver.findElement(By.name("username"));
    Pass = driver.findElement(By.name("password"));
    user_name.sendKeys(username);
    Log.info(username);
    Pass.sendKeys(Password);
    WebElement LoginButton = driver
            .findElement(By.xpath("//*[@id=\"contentDiv\"]/form/table/tbody/tr[4]/td[4]/input"));
    LoginButton.click();
    String Pageheader = driver.findElement(By.cssSelector("#body > nav > a > font")).getText();
    assertEquals(Pageheader, "3D | Diagnostix");

    return driver;

}
这里我把这个方法叫做:

公共类添加\u 3D\u打印机\u订单{

CommonLogin Login = new CommonLogin();
WebDriver driver = Login.OpenCPURL();
 driver.findElement(By.id("printerCheck")).click();
    Thread.sleep(2000);
    String Pageheader_printer = driver.findElement(By.cssSelector("#locationId")).getText();
    assertEquals(Pageheader_printer, "Add Order > Printer & Acc");
    System.out.println("the assertion is done and the application navigate to the 3d printer page");
    Log.info("the application navigate to the 3d printer page succssfully");

此代码运行于任何机器上具有相同路径的Chrome驱动程序的任何位置,但在其他机器上它不工作

您可以在项目中创建一个带有名称驱动程序的文件夹,并可以将chromedriver插入该文件夹中,您可以使用
System.getProperty(“user.dir”)

例如,在创建名为
driver
的文件夹,然后在其中添加
chromedriver
后,使用这行代码:
System.setProperty(“webdriver.chrome.driver”、System.getProperty(“user.dir”)+“/driver/chromedriver”);


这里
System.getProperty(“user.dir”)
将为您提供项目目录路径,然后在其中添加
/driver/chromedriver
将为您提供chromedriver的确切路径,然后它可以在任何机器上使用。

您可以在项目中创建一个名为driver的文件夹,并可以将chromedriver插入该文件夹中,然后您可以选择chromedriver f使用
System.getProperty(“user.dir”)

例如,在创建名为
driver
的文件夹,然后在其中添加
chromedriver
后,使用这行代码:
System.setProperty(“webdriver.chrome.driver”、System.getProperty(“user.dir”)+“/driver/chromedriver”);


这里
System.getProperty(“user.dir”)
将为您提供项目目录路径,然后添加
/driver/chromedriver
将为您提供chromedriver的确切路径,然后它可以在任何机器上使用。

我以前已经尝试过此解决方案,但当我将测试提取到可执行jar并在没有chromedriv的机器上运行时呃,我得到了一个错误,在这个路径中找不到chrome驱动程序你编码的操作系统和你运行脚本的操作系统是一样的?是的,它是bothI上的Windows 10。我以前已经尝试过这个解决方案,但是当我将测试提取到一个可执行的jar,并在没有chrome驱动程序的机器上运行它时,我得到了一个错误,找不到chr此路径中的ome驱动程序编码的操作系统和运行脚本的操作系统是相同的?是的,两者都是Windows 10