#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:
Скорее всего, это не имеет ничего общего с вашими тестами Selenium и путем к браузеру Chrome, а с подчиненными устройствами Jenkins и самим браузером Chrome. Поправьте меня, если я ошибаюсь, но ваш Jenkins запускает подчиненные устройства из службы Windows и пытается открыть браузер Chrome. Это означает, что ваш процесс Chrome запущен как подпроцесс службы Windows Jenkins, и Chrome пытается уйти от этого (иначе Chrome не будет корректно работать в сеансе 0).
Здесь также зарегистрирована ошибка, о которой вы можете прочитать подробнее.
Я также столкнулся с этим для моих тестов TFS, в которых агент тестирования был настроен как служба Windows, и решение состояло в том, чтобы установить его как процесс.
Таким образом, самым простым решением было бы установить Jenkins как процесс, а не службу.
Комментарии:
1. Есть ли способ настроить параметры Chrome для запуска как процесс, а не как подпроцесс?