не удается открыть браузер Chrome в jenkins для скрипта selenium

#jenkins #selenium-webdriver #jenkins-plugins

#дженкинс #selenium-webdriver #дженкинс-плагины

Вопрос:

Я создал среду тестирования с использованием Selenium WebDriver и хочу запустить браузер Chrome, он работает нормально, поскольку я запускаю то же самое через eclipse, но при попытке запустить тот же скрипт через jenkins появляется ошибка ниже:-

Ошибка:-

  T E S T S
-------------------------------------------------------
Running TestSuite
Starting ChromeDriver 2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf) on port 45706
Only local connections are allowed.
  

и мой код для запуска браузера:-

 public class BrowserSelection {
    public static WebDriver driver; 
    public FileInputStream fis;
    public static File file;

    public static Properties prop;
    public String username;
    public String password;
    public static XSSFWorkbook wb;
    public static XSSFSheet ws;
    public static WebDriverWait wait;
    public static Screen src;
    public static Pattern prn;




    @BeforeSuite()
    public void browser() throws Exception{
        //property file load
        prop=new Properties();
        file=new File(System.getProperty("user.dir") "\src\main\resources\config\config.properties");
        fis=new FileInputStream(file);
        prop.load(fis);
        //excel file load
        fis=new FileInputStream(System.getProperty("user.dir") "\src\main\resources\excel\data.xlsx");
        wb=new XSSFWorkbook(fis);

        file=new File("D:\LoyalityFiles\");
        //File[] dir_contents=file.listFiles();


        if (prop.getProperty("browser").equalsIgnoreCase("firefox")) {
            /*ProfilesIni profile=new ProfilesIni();
            FirefoxProfile myprofile=profile.getProfile(prop.getProperty("firefoxprofilename"));*/
            FirefoxProfile myprofile=new FirefoxProfile();
            myprofile.setPreference("browser.download.dir",prop.getProperty("firefoxfilesave"));
            myprofile.setPreference("browser.download.folderList", 2);  
            myprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/zip");               
            driver=new FirefoxDriver(myprofile);

        }else if (prop.getProperty("browser").equalsIgnoreCase("chrome")) {

            System.setProperty("Webdriver.chrome.driver",System.getProperty("user.dir") prop.getProperty("chromeexe"));
            Map<String, Object> prefs = new HashMap<String, Object>();
            prefs.put("download.default_directory", prop.getProperty("chromefileSave"));

            DesiredCapabilities caps = DesiredCapabilities.chrome();

            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", prefs);
            options.addArguments("--disable-extensions");
            caps.setCapability(ChromeOptions.CAPABILITY, options);

            driver=new ChromeDriver(caps);
        }       

        driver.get(prop.getProperty("testURL"));        
        //driver.manage().window().maximize();
        driver.manage().window().setSize(new Dimension(1366, 768));
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);    

    }
  

* Это проект на основе maven.

я думаю, что Дженкинс не может установить путь к Chrome exe. пожалуйста, предложите!! как это решить…..

Комментарии:

1. wiki.jenkins.io/display/JENKINS/…

Ответ №1:

Скорее всего, это не имеет ничего общего с вашими тестами Selenium и путем к браузеру Chrome, а с подчиненными устройствами Jenkins и самим браузером Chrome. Поправьте меня, если я ошибаюсь, но ваш Jenkins запускает подчиненные устройства из службы Windows и пытается открыть браузер Chrome. Это означает, что ваш процесс Chrome запущен как подпроцесс службы Windows Jenkins, и Chrome пытается уйти от этого (иначе Chrome не будет корректно работать в сеансе 0).

Здесь также зарегистрирована ошибка, о которой вы можете прочитать подробнее.

Я также столкнулся с этим для моих тестов TFS, в которых агент тестирования был настроен как служба Windows, и решение состояло в том, чтобы установить его как процесс.

Таким образом, самым простым решением было бы установить Jenkins как процесс, а не службу.

Комментарии:

1. Есть ли способ настроить параметры Chrome для запуска как процесс, а не как подпроцесс?