如何包含可执行的JAR文件浏览器驱动程序时,我导出我的测试,以一个可执行的JAR

问题描述 投票:0回答:1

我想我的测试情况下导出到一个可执行的JAR,这样我可以在任何地方或任何机器运行它们,但我得到了CHROM驱动程序的问题不是由system.properity设置。我需要一个解决方案,我可以在我的代码导出到可执行的JAR文件,包括镀铬Drivre,以便它可以在任何机器上运行,即使它不具备铬Drivre就可以了。

我想包括对环境变量和路径硒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;

}

在这里,我调用这个方法:

公共类Add_3D_Printers_Order {

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驱动程序,但在其他机器不工作

java selenium-chromedriver
1个回答
0
投票

你可以做一个文件夹中的项目与名司机,并可以在文件夹中插入您的chromedriver,您可以使用System.getProperty("user.dir")挑选从该位置chromedriver

例如,使用此行代码将文件夹命名为driver,然后在其中加入chromedriver后:System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/driver/chromedriver");

这里System.getProperty("user.dir")会给你的项目目录路径,然后用/driver/chromedriver追加它会给你chromedriver的确切路径,然后它可以在任何机器上使用。

© www.soinside.com 2019 - 2024. All rights reserved.