Как включить Chrome Driver в исполняемый файл Jar при экспорте моих тестов в исполняемый файл Jar - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь экспортировать мой тестовый пример в исполняемый файл jar, чтобы я мог запускать их в любом месте или с любой машины, но у меня возникла проблема с Chrom Driver, которая не установлена ​​system.properity.Мне нужно решение, в котором я могу экспортировать свой код в исполняемый файл jar и включить Chrome Drivre, чтобы он мог работать на любой машине, даже если на нем нет Chrome Drivre.

Я попытался включить Chrome Driver в средупеременные и Selenium Path.Я также пытался добавить Chrome Driver в ресурсы проекта, но ничего не получалось.

            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");

Thisкод запускается везде, где на любом компьютере есть драйвер Chrome по тому же пути, но на других машинах он не работает

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете создать папку в своем проекте с драйвером имени, а также вставить свой хромедрайвер в эту папку, и вы можете выбрать хромедривер из этого места, используя System.getProperty("user.dir")

Например, используйте эту строку кодапосле создания папки с именем driver и добавления в нее chromedriver: System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/driver/chromedriver");

Здесь System.getProperty("user.dir") даст вам путь к каталогу проекта, а затем добавив его с помощью /driver/chromedriver, вы получите точнуюпуть к хромедрайверу, а затем его можно использовать на любой машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...