Jenkins : Selenium GUI tests are not visible on Windows

66,069

Solution 1

I got the solution. I ran jenkins from command prompt as "java -jar jenkins.war" instead of the windows installer version. Now I can see my browser based tests being executed.

Solution 2

I had the same problem, i got the solution after many attempts. This solution works ONLY on windows XP

If you are using jenkins as a windows service you need to do the following :

1) In windows service select the service of jenkins

Opening Service.msc view

2) Open properties window of the service -> Logon-> enable the checkbox "Allow service to interact with desktop"

Jenkins properties

After then you should reboot the service jenkins

Hope this help you :)

UPDATE:

Actually, I'm working on a an automation tool using Selenium on Windows 10, I've installed Jenkins ver. 2.207 as windows application (EXE file), it's running as windows service and ALL drivers (Chrome, FireFox, IE) are visible during test executions WITHOUT performing a mere configuration on the System or Jenkins

Solution 3

If you are already doing what @Sachin suggests in a comment (i.e. looking at the machine where Jenkins actually runs) and still do not see the browsers, then your problem may be the following:

If you run Jenkins as a service in the background it won't open apps in the foreground. You may either try to run it not as a service in the foreground, or run it as a Local System account and check Allow the service to interact with desktop option. In the latter case you may get into permission problems, though.

Update: To make sure this answer is understood properly by others: Jenkins Windows 'native' installation is not really native. It's a wrapper around Java that runs it as a service.

Solution 4

To interact with desktop GUI, you should launch slave agent via JNLP: https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds#Distributedbuilds-LaunchslaveagentviaJavaWebStart

After adding the node in Jenkins (configured as Java Web Start launch), just make a startup batch script on the node machine:

java -jar slave.jar -jnlpUrl http://{Your Jenkins Server}:8080/computer/{Your Jenkins Node}/slave-agent.jnlp

(slave.jar can be downloaded from http://{Your Jenkins Server}:8080/jnlpJars/slave.jar)

See more answers here: How to run GUI tests on a jenkins windows slave without remote desktop connection?

Solution 5

In the case of Windows 7 you should not install jenkins as windows application (because in this recent version, Microsoft decided to give services their own hidden desktop even you enable the functionality "interact with desktop" in jenkins service), you may have to deploy it from a war file as follows:

1) Download jenkins.war from Jenkins official site

2) Deploy it by the command prompt : java -jar {directoryOfJenkinsFile}/jenkins.war

3) Now you can access jenkins administration on http:// localhost:8080

Hope that helps you !

Share:
66,069
Admin
Author by

Admin

Updated on April 17, 2020

Comments

  • Admin
    Admin about 4 years

    When I run my selenium test (mvn test) from jenkins (windows) I see only the console output. I don't see the real browsers getting opened . How can I configure jenkins so that I can see the browsers running the test?

  • Admin
    Admin about 12 years
    I tried what you suggested but it did not work out. Finally had to run jenkins as java -jar jenkins.war
  • Admin
    Admin about 12 years
    Thanks to this site for providing the solution forgetfulprogrammer.wordpress.com/tag/interact-with-desktop
  • malenkiy_scot
    malenkiy_scot about 12 years
    When I said 'run it not as a service in the foreground' I actually meanu java -jar jenkins.war
  • Ripon Al Wasim
    Ripon Al Wasim about 11 years
    The above answer is very much helpful for me. I also faced the same problem. Now solved by running jenkins as java -jar jenkins.war
  • Patrick Cummins
    Patrick Cummins over 10 years
    When I run jenkins this way "java -jar jenkins.war" my projects disapeared. This was a bit scary the first time. The projects come back when I run them as the service.... but I can't see the browser in action. Any ideas?
  • SHaKie
    SHaKie almost 9 years
    @rajesh You should set malenkiy_scot's answer as the accepted one because it is correct and was provided before you 'figured it out' yourself.
  • JaneGoodall
    JaneGoodall over 8 years
    Thanks, I just spend a day GUI tests to be visible on Windows and this solution worked! My tests had started failing when I ran Jenkins as a service, probably because of changes to the service's hidden desktop, for example, screen resolution changes (see @Shessuky's Windows 7 answer).
  • nebffa
    nebffa over 7 years
    @PatrickCummins you need to specify some other things such as the webroot dir ala --webroot="C:\Program Files (x86)\Jenkins\war" as well as the JENKINS_HOME environment variable prior to running the JAR, e.g. $Env:JENKINS_HOME = "C:\Program Files (x86)\Jenkins"
  • Aditya
    Aditya over 7 years
    This solution worked perfectly. By default this option is unchecked.
  • Jordan Georgiev
    Jordan Georgiev over 7 years
    I can confirm that this works on both Windows Server 2016 and Windows 10 as well.
  • Sachin Prasad
    Sachin Prasad about 7 years
    Not working in windows 10 or server Jedy seems to be using other system.
  • Shessuky
    Shessuky over 6 years
    @ChandraShekhar : This solution works only in Windows XP, for windows 7 you may have to deploy Jenkins instead of installing it as windows application (see my answer below)
  • Pranay Kumar
    Pranay Kumar over 6 years
    Why there is no "Allow service to interact with desktop" checkbox for user account option?
  • user43968
    user43968 almost 6 years
    This work for me too for a javafx/swing app!! But when i launch it from the browser the forked app doesn't have focus and test testrobot doesn't work ?? Have find a solution to this
  • JohnP2
    JohnP2 over 2 years
    Here is code for a batch file (for a shortcut to the start folder) in order to launch Jenkins as a process, not a service: cmd /k "cd C:\Program Files\Jenkins && java -jar jenkins.war"