Браузер не открывается при запуске тестов Cucumber от Jenkins

Я пытаюсь запустить проект Cucumber Selenium из Jenkins, настроенного с помощью Maven, но браузер не открывается, и выполнение не выполняется.

Когда я запускаю тот же проект из командной строки с помощью теста mvn, выполнение происходит так, как ожидалось.

Ниже приведен вывод консоли из Jenkins.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.srinimarva.bigbasket.runner.customer.LoginATTest
#Author: Srinivasan Ramu
#Email: [email protected]
@Login
Feature: To test the Login functionality using BigBasket, Facebook and Google credentials

  Background:                                             [90m# com/srinimarva/bigbasket/features/customer/Login.feature:6[0m
    [32mGiven [0m[32mI open "[0m[32m[1mMozilla[0m[32m" browser to execute "[0m[32m[1mLoginTest[0m[32m"[0m [90m# CommonStepDefs.I_open_browser(String,String)[0m
    [32mAnd [0m[32mI connect to "[0m[32m[1mhttp://www.bigbasket.com[0m[32m"[0m           [90m# CommonStepDefs.connectURL(String)[0m
Unable to locate element: {"method":"xpath","selector":"html/body/div[18]/div[1]/div[2]/div[3]/span[1]/a"}
Command duration or timeout: 30.09 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'Srinivasans-MacBook-Pro.local', ip: '10.231.233.99', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.5', java.version: '1.7.0_79'

Ниже приведено содержимое pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.srinimarva.bigbasket</groupId>
  <artifactId>BigBasket</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>BigBasket</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
    <dependency>
      <groupId>info.cukes</groupId>
      <artifactId>cucumber-junit</artifactId>
      <version>1.2.4</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
    <dependency>
      <groupId>info.cukes</groupId>
      <artifactId>cucumber-java</artifactId>
      <version>1.2.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
    <dependency>
      <groupId>info.cukes</groupId>
      <artifactId>cucumber-core</artifactId>
      <version>1.2.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.53.1</version>
    </dependency>
  </dependencies>
</project>

Не могли бы вы помочь мне в решении вопроса?


person Srinivasan Ramu    schedule 23.07.2016    source источник
comment
Какой веб-драйвер вы используете. Работает ли jenkins в контексте вошедшего в систему пользователя, чтобы он мог начать сеанс пользовательского интерфейса?   -  person Martin Brugger    schedule 24.07.2016
comment
@MartinBrugger Я использую FirefoxDriver, и браузер открывается, когда я запускаю проект из Eclipse, но не работает, когда я запускаю его из Jenkins.   -  person Srinivasan Ramu    schedule 24.07.2016
comment
Я не знаю, как вы пришли к выводу, что ваш браузер не открывается, потому что ошибка, которую вы получаете, является исключением NoSuchElement, которое может произойти только тогда, когда объект WebDriver уже существует.   -  person Eugene S    schedule 24.07.2016
comment
Более того, я не вижу, как это связано с огурцом.   -  person Eugene S    schedule 24.07.2016
comment
@EugeneS Но почему я не вижу, чтобы браузер Firefox открывался с кодом Webdriver browser = new FirefoxDriver();   -  person Srinivasan Ramu    schedule 24.07.2016
comment
Как вы управляете Дженкинсом? см. Разрешить Jenkins запускать приложения с графическим интерфейсом на cimgf.com/2015/05/26/setting-up-jenkins-ci-on-a-mac-2 или переключитесь на веб-драйвер phantomJS, чтобы иметь возможность запускать тесты без головы   -  person Martin Brugger    schedule 24.07.2016


Ответы (2)


Поверьте, вы используете Jenkins как службу, и это покажет фоновый процесс. Сделайте следующее и надейтесь, что это поможет

Выполнить -> Службы.msc

Щелкните правой кнопкой мыши jenkins и выберите Разрешить сервису взаимодействовать с рабочим столом на вкладке Вход в систему.

person Harshavardhan Konakanchi    schedule 25.07.2016
comment
Я удалил Jenkins со своего Mac и запустил jenkins.war как java -jar jenkins.war, и это решило проблему. - person Srinivasan Ramu; 27.07.2016
comment
Этот ответ подойдет для Windows... Но я не уверен, что работаю с Mac. - person Harshavardhan Konakanchi; 27.07.2016

Мое выполнение тоже работало из Eclipse, а также mvn test из командной строки.

Я столкнулся с аналогичной проблемой, когда я мог видеть, что тест выполняется в разделе «Консольный вывод» в Jenkins, но не мог видеть работающий браузер. Это сработало только после того, как я включил Обнаружение интерактивных служб из служб и установил для него значение Вручную.

Вы сможете увидеть всплывающее окно с надписью «Программа, работающая на этом компьютере, пытается отобразить сообщение» с параметрами:

  • Посмотреть сообщение
  • Спроси меня позже

Чтобы увидеть, как выполняется ваш тест, просто нажмите «Просмотреть сообщение», и вы сможете увидеть, как выполняется ваш тест. Если вы хотите вернуться в Jenkins, просто нажмите «Возврат».

person zagoo2000    schedule 30.04.2019