Giter Club home page Giter Club logo

docker-selenium's Introduction

Selenium in Docker with Chrome and Firefox

Build Status Docker Pulls Docker

Selenium 3 docker run ... elgalu/selenium:latest docker-selenium-grid

Selenium 2 docker run ... elgalu/selenium:2 no longer maintained

Purpose

The purpose of this project is to have Selenium running as simple and as fast as possible.

This purpose is augmented by Zalenium a project which uses this one to provide docker-selenium(s) on-demand.

Zalenium also forwards tests to a Cloud Provider (Sauce Labs, BrowserStack, TestingBot & LambdaTest) when necessary.

Official repo

Note SeleniumHQ/docker-selenium and this one share the same purpose however both projects have diverged considerably in the last two years, some major differences are:

Even though both projects share the same purpose is good to have alternatives, see also for example docker-alpine-selenium. Letting more than 1 docker-selenium project grow to be able to learn from each other's success or failures ultimately impacts the final users positively. This doesn't discard that at some point all selenium maintainers will sit together a sprint to coordinate some major changes and cleanup open issues and perhaps we might merge N similar projects in the future.

Statistics

ga-datastudio-docker-selenium

Alternatives

If you don't require video recording we suggest to use either Google Chrome in headless mode or Firefox in headless mode.

We also recommend avoiding PhantomJS as maintenance was stopped after Chrome & Firefox headless became available.

You can also use a paid service like Sauce Labs, BrowserStack or LambdaTest, note they offer free open source accounts and straightforward integration with Travis CI.

Requisites

This project is normally tested in the last version of Docker and docker-compose and also in the release candidates. To figure out the currently used specific versions it surely works on, see file .travis.yml example values:

docker --version         #=> 17.09.0-ce
docker-compose --version #=> 1.16.1

If you need to use docker-machine to run docker (like for example on a Mac before the Docker native version 1.12), you also need to install VirtualBox and then run these commands to get started:

docker-machine create --driver virtualbox default
eval "$(docker-machine env default)"

You will need to run the second eval command for every new terminal window.

Usage

Run

  1. Pull the image and run the container

     docker pull elgalu/selenium #upgrades to latest if a newer version is available
    
     docker run -d --name=grid -p 4444:24444 -p 5900:25900 \
         -e TZ="US/Pacific" -v /dev/shm:/dev/shm --privileged elgalu/selenium
    
  2. Wait until the grid starts properly before starting the tests (Optional but recommended)

     docker exec grid wait_all_done 30s
     # Or if docker exec is not available (eg. circleci)
     wget --retry-connrefused --no-check-certificate -T 30  http://localhost:4444/grid/console -O /dev/null
    

After this, Selenium will be up and ready to accept clients at http://localhost:4444/wd/hub. The grid's available browsers can be viewed by opening the console at http://localhost:4444/grid/console. If you are using Mac (OSX) or Microsoft Windows localhost won't work unless you are in Docker Beta (version >= 1.12) If you are using Docker version <= 1.11 please find out the correct IP through docker-machine ip default.

Notes:

  • The new default VNC_PASSWORD=no will make it VNC passwordless accessible.
  • Once this docker feature is in place wait_all_done won't be necessary anymore.

Stop

Shutdown gracefully

docker exec grid stop
docker stop grid

Shutdown immediately, no mercy

docker rm -vf grid

Docker Compose

See docker-compose

Jenkins

See jenkins

Parallel

We now have a better suited product for this use case, is called Zalenium

This image is designed to run one test on each docker container but if you still want to run multiple tests in parallel you can still do so with Zalenium

If you want to limit yourself to this project, you still can. There are some ways to do it:

  1. The recommended way is via docker-compose and you should replace mock with your web service under test within the [docker-compose-tests.yml][] file.

     docker-compose -f docker-compose-tests.yml -p grid up --force-recreate
     docker-compose -f docker-compose-tests.yml -p grid scale mock=1 hub=1 chrome=3 firefox=3
    
  2. The (not recommended) way is by increasing MAX_INSTANCES and MAX_SESSIONS which now defaults to 1.

     docker run -d --name=grid -p 4444:24444 -p 5900:25900 \
         -v /dev/shm:/dev/shm --privileged \
         -e MAX_INSTANCES=20 -e MAX_SESSIONS=20 \
         elgalu/selenium
    

The drawback is that all tests will run on the same desktop meaning the video recording will only capture the browser in the foreground but it's in the roadmap to make all this transparent, see issues #78 and #77.

Another problem with increasing MAX_INSTANCES & MAX_SESSIONS is focus issues. So in this case is better scale up/down via docker-compose.

OSX

If you are in Mac, you need to get the correct IP of the docker machine. One of these two commands should work to get it:

docker-machine ip default

or former:

boot2docker ip

Screen size

You can set a custom screen size at docker run time by providing SCREEN_WIDTH and SCREEN_HEIGHT environment variables:

docker pull elgalu/selenium

docker run -d --name=grid -p 4444:24444 -p 5900:25900 \
  -v /dev/shm:/dev/shm --privileged \
  -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1480 \
  elgalu/selenium

docker exec grid wait_all_done 10s

open vnc://:hola@localhost:5900

TimeZone

You can control and modify the timezone on a container by using the TZ environment variable through the docker run command, e.g. by adding -e TZ="US/Pacific"

docker run --rm -ti --name=grid -p 4444:24444 -p 5900:25900 \
    -e TZ="US/Pacific" \
    -v /dev/shm:/dev/shm --privileged elgalu/selenium

Examples:

docker run ... -e TZ="US/Pacific" ...
docker exec grid date
#=> Fri May 20 06:04:58 PDT 2016

docker run ... -e TZ="America/Argentina/Buenos_Aires" ...
docker exec grid date
#=> Fri May 20 10:04:58 ART 2016

docker run ... -e TZ="Europe/Berlin" ...
docker exec grid date
#=> Fri May 20 15:04:58 CEST 2016

Chrome flavor

This feature was available in previous versions, please go to 2.47.1m to use it.

To configure which Chrome flavor you want to use (stable, beta, unstable), just pass -e CHROME_FLAVOR=beta to docker run. Default is stable.

Firefox version

This feature was available in previous versions, please go to 2.47.1m to use it. To configure which Firefox version to use, first check available versions in the CHANGELOG. Then pass -e FIREFOX_VERSION=38.0.6 to docker run. Default is the latest number of the available list.

Record Videos

Step by step guide at docs/videos.md

If you create the container with -e VIDEO=true it will start recording a video through the vnc connection run upon start. It is recommended to create first a local folder videos in your current directory, and mount the videos directory for an easy transfer with -v $(pwd)/videos:/videos.

Once your tests are done you can either manually stop the recording via docker exec grid /bin-utils/stop-video where grid is just the arbitrary container chosen name in docker run command. Or simply stop the container and that will stop the video recording automatically.

Relevant up-to-date environment variables to customize it are at the Dockerfile, below a possibly outdated list of settings:

FFMPEG_FRAME_RATE=10
FFMPEG_CODEC_ARGS="-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p"
FFMPEG_FINAL_CRF=0
FFMPEG_DRAW_MOUSE=1
VIDEO_TMP_FILE_EXTENSION="mkv"
VIDEO_FILE_EXTENSION="mp4"
MP4_INTERLEAVES_MEDIA_DATA_CHUNKS_SECS="500"
VIDEO_FILE_NAME="test"

It is important to note that ffmpeg video recording takes an important amount of CPU usage, even more when a well compressed format like mp4 is selected.

VNC

When you don't specify a VNC password, the new default VNC_PASSWORD=no will make it VNC passwordless accessible.

noVNC

Disabled by default, noVNC provides a browser VNC client so you don't need to install a vnc viewer if you choose so. Note: we were using guacamole before.

Safari Browser already comes with a built-in vnc viewer so this feature is overkill and is disabled by default, just navigate to vnc://localhost:5900 in your Safari browser.

You need to pass the environment variable -e NOVNC=true in order to start the noVNC service and you will be able to open a browser at localhost:6080

docker run --rm -ti --name=grid -p 4444:24444 -p 5900:25900 \
  -v /dev/shm:/dev/shm --privileged -p 6080:26080 -e NOVNC=true \
  elgalu/selenium

You can provide additional NoVNC options such as ?view_only=false to allow you to interact with the virtual desktop which now is read-only by default so you don't mess with the tests accidentally.

If the VNC password was randomly generated find out with

docker exec grid wait_all_done 30s
#=> ... a VNC password was generated for you: ooGhai0aesaesh

Issues with Chrome

Chrome crashed

If your tests crashes in Chrome you may need to increase shm size or simply start your container by sharing -v /dev/shm:/dev/shm --privileged or, alternatively, -v /dev/shm:/dev/shm --privileged

docker run ... -v /dev/shm:/dev/shm --privileged ...

Firefox crashed

Same as Chrome, people have reported the shm fix might also be necessary for Firefox.

Chrome not reachable or timeout after 60 secs

In CentOS and apparently since docker 1.10.0 is necessary to disable sandbox mode through --no-sandbox example client implementation.

The error comes along with this message while starting Chrome:

Failed to move to new namespace: PID namespaces supported. Network namespace supported, but failed: errno = Operation not permitted

No Sandbox

ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox");

In Protrator

capabilities: {
  browserName: 'chrome',
  chromeOptions: {
    args: ['--no-sandbox'],
  },
},

However this is now the default of this image, see CHROME_ARGS="--no-sandbox" in the Dockerfile so don't be surprised to see the "Stability and security will suffer" banner when opening Chrome inside the container.

Cloud Testing Platforms

We now have a better suited product for this use case, is called Zalenium

Additional Uses

Using Xephyr to redirect X to the docker host

Note the below method gives full access to the docker container to the host machine.

Host machine, terminal 1:

sudo apt-get install xserver-xephyr
export XE_DISP_NUM=12 SCREEN_WIDTH=2000 SCREEN_HEIGHT=1500
Xephyr -ac -br -noreset -resizeable \
    -screen ${SCREEN_WIDTH}x${SCREEN_HEIGHT} :${XE_DISP_NUM}

Host machine, terminal 2:

docker run --rm --name=ch -p=4444:24444 \
  -v /dev/shm:/dev/shm --privileged \
  -e SCREEN_WIDTH -e SCREEN_HEIGHT -e XE_DISP_NUM \
  -v /tmp/.X11-unix/X${XE_DISP_NUM}:/tmp/.X11-unix/X${XE_DISP_NUM} \
  elgalu/selenium

3 Now when you run your tests instead of connecting. If docker run fails try xhost +

Step by step build

Build this image

If you git clone this repo locally, i.e. git clone it and cd into where the Dockerfile is, you can:

docker build -t selenium .

Use this image

e.g. Spawn a container for Chrome testing:

CH=$(docker run --rm --name=CH -p=127.0.0.1::24444 -p=127.0.0.1::25900 \
    -v /e2e/uploads:/e2e/uploads selenium)

Note: -v /e2e/uploads:/e2e/uploads is optional in case you are testing browser uploads on your WebApp, you'll probably need to share a directory for this.

The 127.0.0.1:: part is to avoid binding to all network interfaces, most of the time you don't need to expose the docker container like that so just localhost for now.

I like to remove the containers after each e2e test with --rm since this docker container is not meant to preserve state, spawning a new one is less than 3 seconds. You need to think of your docker container as processes, not as running virtual machines in case you are familiar with vagrant.

A dynamic port will be bound to the container ones, i.e.

# Obtain the selenium port you'll connect to:
docker port $CH 4444
#=> 127.0.0.1:49155

# Obtain the VNC server port in case you want to look around
docker port $CH 25900
#=> 127.0.0.1:49160

In case you have RealVNC binary vnc in your path, you can always take a look, view only to avoid messing around your tests with an unintended mouse click or keyboard.

./bin/vncview.sh 127.0.0.1:49160

e.g. Spawn a container for Firefox testing:

This command line is the same as for Chrome, remember that the selenium running container is able to launch either Chrome or Firefox, the idea around having 2 separate containers, one for each browser is for convenience, plus avoid certain :focus issues your WebApp may encounter during e2e automation.

FF=$(docker run --rm --name=ff -p=127.0.0.1::24444 -p=127.0.0.1::25900 \
    -v /e2e/uploads:/e2e/uploads selenium)

How to get docker internal IP through logs

CONTAINER_IP=$(docker logs sele10 2>&1 | grep "Container docker internal IP: " | sed -e 's/.*IP: //' -e 's/<.*$//')
echo ${CONTAINER_IP} #=> 172.17.0.34

Look around

docker images
#=>

REPOSITORY  TAG              IMAGE ID      CREATED             SIZE
selenium    latest           a13d4195fc1f  About an hour ago   2.927 GB
ubuntu      xenial-20160525  2fa927b5cdd3  4 weeks ago         122 MB

DNS

How to share the host DNS

By default docker run sets the DNS to Google ones 8.8.8.8 and 8.8.4.4 however you may need to use your own.

First attempt is to use --dns option, e.g.

docker run --dns=1.1.1.1 --dns=1.1.1.2 <args...>

However this may not work for you and simply want to share the same DNS name resolution than the docker host machine, in which case you should use --net=host along with --pid=host

docker run --net=host --pid=host <args...>

So --pid=host is included to avoid moby/moby#5899 sudo: unable to send audit message: Operation not permitted

Pid

Full example using --net=host and --pid=host but for this to work in OSX you need the latest docker mac package, upgrade if you haven't done so in the last month.

docker run -d --name=grid --net=host --pid=host \
  -v /dev/shm:/dev/shm --privileged -e SELENIUM_HUB_PORT=4444 \
  elgalu/selenium
docker exec grid wait_all_done 30s
./test/python_test.py

DNS example

docker run -d --net=host --pid=host --name=grid -v /dev/shm:/dev/shm --privileged elgalu/selenium
docker exec grid wait_all_done 30s

Who is using docker-selenium?

Troubleshooting

All output is sent to stdout so it can be inspected by running:

$ docker logs -f <container-id|container-name>

Powered by Supervisor, the container leaves many logs;

/var/log/cont/docker-selenium-status.log
/var/log/cont/selenium-hub-stderr.log
/var/log/cont/selenium-hub-stdout.log
/var/log/cont/selenium-node-chrome-stderr.log
/var/log/cont/selenium-node-chrome-stdout.log
/var/log/cont/selenium-node-firefox-stderr.log
/var/log/cont/selenium-node-firefox-stdout.log
/var/log/cont/supervisord.log
/var/log/cont/video-rec-stderr.log
/var/log/cont/video-rec-stdout.log
/var/log/cont/vnc-stderr.log
/var/log/cont/vnc-stdout.log
/var/log/cont/xmanager-stderr.log
/var/log/cont/xmanager-stdout.log
/var/log/cont/xterm-stderr.log
/var/log/cont/xterm-stdout.log
/var/log/cont/xvfb-stderr.log
/var/log/cont/xvfb-stdout.log

Changelog

See CHANGELOG.md

The sha256 digests are generated after pushing the image to the registry therefore the last version of this docker-selenium will always have digest TBD (to be determined) but will be updated manually at releases

The image ids also change after scm-source.json has being updated which triggers a cyclic problem so value TBD will be set there and updated in the releases page by navigating into any release tag.

How to get container versions

docker exec grid versions

Security

See SECURITY.md

License

See LICENSE.md

docker-selenium's People

Contributors

adeelkhurshid-minted avatar baflqa avatar chrismcmahon avatar christopheg avatar diemol avatar elgalu avatar elgalubot avatar gomezgoiri avatar jeromegillard avatar jlamaille avatar kumar-nitish avatar kzachariassen avatar lerua83 avatar manoj9788 avatar markjlorenz avatar matthiasn avatar max-horvath avatar mtscout6 avatar nicolasritouet avatar olberger avatar pearj avatar pedrro avatar piskvor avatar reserveddeveloper avatar seangerhardt-wf avatar srghma avatar srinivasantarget avatar stephanecolson avatar tobix avatar tschmidt01 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-selenium's Issues

Video record only the browser

Seems currently the entire desktop is being captured. Is it possible to record only the specific provisioned browser?

How to deploy on Amazon BeanStalk

This is obviously an optimistic support question :)

I was wondering if you have experience in deploying to Amazon BeanStalk using a Dockerrun.aws.json file?

I'm writing a blog post about using this docker image to level up testing (headless Chrome instead of PhantomJs), and I'd be happy to give an easy solution for deploying.

Launch as grid only, firefox node only, chrome node only.

Launch as grid only, firefox node only, chrome node only.

Start services via env vars VIDEO=false GRID=true CHROME=true FIREFOX=true

Grid

You can lunch a grid only container via environment variables:

docker run --rm --name=hub -p 4444:24444 -p 5930:25900 -p 2223:22222 \
  -p=6081:26080 -e CHROME=false -e FIREFOX=false \
  elgalu/selenium:v2.46.0-01

The important part above is -e CHROME=false -e FIREFOX=false which tells the docker image not run run default chorme and firefox nodes turning the container into a grid-only one.

Node

You can lunch a node only container via environment variables:

docker run --rm --name=node -p=5940:25900 -p=2224:22222 -p=6082:26080 \
  -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" -e VIDEO=true \
  -e SELENIUM_HUB_HOST=10.0.0.1 \
  -e SELENIUM_HUB_PORT=4444 \
  -e SELENIUM_NODE_HOST=10.0.0.2 \
  -p 25550:25550 -p 25551:25551 \
  -e GRID=false -e CHROME=true -e FIREFOX=true \
  -v $(pwd)/videos:/videos \
  elgalu/selenium:v2.46.0-01

The important part above is -e GRID=false which tells the container to be a node-only node, this this case with 2 browsers -e CHROME=true -e FIREFOX=true but could be just 1.

Is it possible to set a specific proxy for each grid-node?

I'm doing some webcrawling with selenium (java) and phantomjs. I would like to switch to a headless chrome/chromium.

For each crawl i'm using a different proxy-server with a new phantomjs instance (created by webdriver). Now i ask myself, wether it's possible to change the crawling system to this docker container but also have the possibility to set a proxy for each crawl. I'm not familiar with selenium-grid yet. I think it's reusing existing browser-instances and than it's not possible to change the proxy i think. Maybe it's possible to get a new grid browser-instances by a command?

I would be glad to hear some tips or answers wether it's possible to create such an environment with this docker image.

Number of chrome containers at the same time

Hi,
How many chrome containers can be up and running at the same time?
My framework can run up to 300 tests at the same time. Currently we are using 96 vms and each one running 4 chrome instances so the grid is working fine. But I want to move to docker and create container per test but i need to know the limitation..

I have strong server 56 CPUs, 256GB RAM, 1700GB HD.

What do you think? how many containers I can have at the same time?

Thanks for your great work...

Retrieve logs

It could be great to retrieve container logs with docker logs command.

UnknownError: session deleted because of page crash from tab crashed

Chrome crashes on docker-selenium instances (works ok with real machines) on certain high GPU intensive UI tests

{code}
UnknownError: unknown error: session deleted because of page crash
from tab crashed
(Session info: chrome=43.0.2357.81)
(Driver info: chromedriver=2.15.322448 (52179c1b310fec1797c81ea9a20326839860b7d3),platform=Linux 3.13.0-32-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 53 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'zelenium', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-32-generic', java.version: '1.7.0_80'
Session ID: b12eb3c43351dad58746798c40078ef9
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.com.google.Chrome.11yHIh}, rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, version=43.0.2357.81, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, takesScreenshot=true}]
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
==== async task ====
WebDriver.executeScript()
.....
{code}

Works ok in Firefox.

Problem with dbus-launch

I'm working with selenium 2.43.1 and Firefox fails with this error message:

(firefox:122): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
//bin/dbus-launch terminated abnormally without any error message

Seems that dbus-launch is now in package dbus-x11 (https://bugs.launchpad.net/ubuntu/+source/dbus/+bug/118919). I Haven't managed to make it work again though, i'll propose a PR once i found a viable solution.

chrome not reachable

Hi,
Chrome is craching and I can't fix it even look into all issues about it in the docker pages...

I'm running:
docker run -d --name=grid
-p 4444:24444 -p 5810:5810 -p 5820:5820 -p 5830:5830
-e SELENIUM_NODE_CH_PORT=25010 -e SELENIUM_NODE_FF_PORT=26010
-e GRID=true -e CHROME=true -e FIREFOX=true
-e VNC_PASSWORD=hola -e VNC_PORT=5810
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2i

then:
docker run -d --name=node1 --net=container:grid
-e DISP_N=20 -e SSHD_PORT=22220
-e SUPERVISOR_HTTP_PORT=29020
-e SELENIUM_NODE_CH_PORT=25020 -e SELENIUM_NODE_FF_PORT=26020
-e GRID=false -e CHROME=true -e FIREFOX=true
-e VNC_PASSWORD=hola -e VNC_PORT=5820
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2i

While firefox run perfectly i'm having issues with chrome and getting: org.openqa.selenium.WebDriverException: chrome not reachable when running my test

I also mount /dev/shm to be 512M

df -h
tmpfs 512M 0 512M 0% /dev/shm

My vm is CentOS 7:
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3882828 total, 2346076 free, 128372 used, 1408380 buff/cache
KiB Swap: 4063228 total, 3995524 free, 67704 used. 3508572 avail Mem

Thanks,

Build with VERSION=local version override with all images

โžœ ~ docker run -d -p 4444:4444 -p 5900:5900 --name selenium-hub elgalu/selenium-hub:2.44.0
Unable to find image 'elgalu/selenium-hub:2.44.0' locally
Pulling repository elgalu/selenium-hub
2014/11/06 12:17:51 Error: image elgalu/selenium-hub not found

โžœ ~ docker pull phusion/baseimage:0.9.15
...
โžœ docker-selenium git:(master) VERSION=local make build
...
Successfully built df0ff142acaf
cd ./Hub && docker build -t elgalu/selenium-hub:local .
Sending build context to Docker daemon 5.12 kB
Sending build context to Docker daemon
Step 0 : FROM elgalu/selenium-base:2.44.0
Pulling repository elgalu/selenium-base
2014/11/06 12:24:01 Error: image elgalu/selenium-base not found
make: *** [hub] Error 1
โžœ docker-selenium git:(master)

Remote machine Video Recording

Hi,

I started grid with my host machine. Given nodes are my test machines. Video was recording. But unable to view the actions in video. It gets look screen only.

Commands :-
Gird (From my machine ) :-

docker run --rm --name=grid -p 4446:24444 -p 5920:25900 -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola -e VIDEO=true -e FIREFOX=false -v $(pwd)/videos:/videos elgalu/selenium:2.47.1a

Nodes (From test machines):-

docker run --rm --name=node -p 25550:25550 -p 25551:25551 -e SELENIUM_HUB_HOST=MY_MACHINE_IP -e SELENIUM_HUB_PORT=4446 -e SELENIUM_NODE_HOST=TEST_MACHINE_IP -e GRID=false -e CHROME=true -e FIREFOX=true elgalu/selenium:2.47.1n

Here, I cant attached my video. So I shared my screenshot here.

nodes

Note: If I run hub & node in same m/c, video recording correctly.
Please do the needful asap.

Thanks in Advance,
Divya A

I'm facing issues when I'm trying to add second node on node only server

I have one HUB on separate docker server (I'm able to add multiple nodes here)
But on the second server where is only one node configured I'm unable to add second node. It is creating but HUB shows connection refused warning information

It is how I'm setting first node

docker run --rm --name=node -p=5940:25900 -p 25550:25550 -p 25551:25551 -e SELENIUM_HUB_HOST=10.244.2.3 -e SELENIUM_HUB_PORT=4444 -e SELENIUM_NODE_HOST=10.244.2.5 -e MAX_SESSIONS=10 -e MAX_INSTANCES=5 -e GRID=false -e CHROME=true -e FIREFOX=true -e VNC_PASSWORD=hola -v /dev/shm:/dev/shm elgalu/selenium:lates

It is working well, but when I've run the next node on this server

sudo docker run --rm --name=node3x -e DISP_N=20 -e SSHD_PORT=22220 -e SUPERVISOR_HTTP_PORT=29020 -e SELENIUM_NODE_CH_PORT=25020 -e SELENIUM_NODE_FF_PORT=26020 -e GRID=false -e CHROME=true -e FIREFOX=true -e VNC_PASSWORD=hola -e VNC_PORT=5820 -e MAX_SESSIONS=10 -e MAX_INSTANCES=5 -e SELENIUM_HUB_HOST=10.244.2.3 -e SELENIUM_HUB_PORT=4444 -e SELENIUM_NODE_HOST=10.244.2.5 -v /dev/shm:/dev/shm elgalu/selenium:latest

The hub displays the new node but the warning message appears and I'm not able to telnet to the CHROME port nor the VNC port for newly created node.

Could you please help me what I'm doing wrong or what should be set to make it possible?

Make capabilities and selenium options configurable

Video Record

I started hub in my local machine & nodes are started in remote machine. I would like to see the running cases videos. So I tried following command for video recording. But video not stored in my dir.

docker run --rm --name=hub -p 4446:24444 -p 5930:25900 -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1480 -e CHROME=false -e FIREFOX=false -e VIDEO=true -e FFMPEG_FRAME_RATE=25 -e VIDEO_FILE_NAME="test" -e VIDEO_FILE_EXTENSION=mkv -e FFMPEG_CODEC_ARGS="" elgalu/selenium:2.47.1n

Did I miss anything?

Please help me to record the video

Thanks in Advance,

chrome is not working

i try to use chrome driver from php using this docker and i get something like

Uncaught exception 'PHPWebDriver_UnhandledWebDriverError' with message 'chrome not reachable
(Driver info: chromedriver=2.11.298611 (d1120fdf51badec2f7b63a96e19a58d4783de84d),platform=Linux 3.13.0-36-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.53 seconds
Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33'
System info: host: 'd8ef88669f6d', ip: '172.17.2.19', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-36-generic', java.version: '1.7.0_65'

do you have any ideea what is wrong? for you chrome is working?

p.s. firefox driver is working great . tx for this docker :)

Implement logrotate and config value to MAX log size

I've setup a demo server on Digital ocean, and I using glances I've noticed the docker container was gradually getting bigger.

Here's the command I use:

docker run -d --name=ch \
  -p=0.0.0.0:8484:8484 -p=0.0.0.0:2222:2222 \
  -p=0.0.0.0:4470:4444 -p=0.0.0.0:5920:5900 \
  -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1080 \
  -e VNC_PASSWORD=gizra -e WITH_GUACAMOLE=false \
  elgalu/selenium:v2.46.0-base1

Some memory stats:
docker-stop

Docker stopped: 120mb
Docker started, no test ran: 210mb

After 1st test: 240mb
After 2nd test: 285mb
After 3rd test: 305MB

It might be related to logs being accumulated? If so, maybe we can have a switch for that.
My goal is having a server running this container as deamon, so my devs can use it on their local/ Travis to test.

@elgalu if you want I can send you the credentials to the server -- it's a sandbox.

Connection error 403

I assume this is a support question, since the docker is running fine and I'm able to connect to Guacamole - on Mac I use boot2docker ip to get the IP and then for example http://192.168.59.103:8081/#/ is available.

However, when I try to connect to http://192.168.59.103:4470/ I get

error_403_forbidden_for_proxy_and_skype-3

Command used is the one from the README:

docker run --rm --name=ch -p=0.0.0.0:8081:8484 -p=0.0.0.0:2222:2222 \
                          -p=0.0.0.0:4470:4444 -p=0.0.0.0:5920:5900 \
    -e SCREEN_WIDTH=1800 -e SCREEN_HEIGHT=1110 \
    -e VNC_PASSWORD=hola -e WITH_GUACAMOLE=true \
    -e SSH_PUB_KEY="$(cat ~/.ssh/id_rsa.pub)" \
    elgalu/selenium:v2.45.0-ssh2

"Selenium failed me for the last time" error

When invoking the command from the README

docker run --rm --name=ch -p=0.0.0.0:8081:8484 -p=0.0.0.0:2222:2222 \
                          -p=0.0.0.0:4470:4444 -p=0.0.0.0:5920:5900 \
    -e SCREEN_WIDTH=1800 -e SCREEN_HEIGHT=1110 \
    -e VNC_PASSWORD=hola -e WITH_GUACAMOLE=true \
    -e SSH_PUB_KEY="$(cat ~/.ssh/id_rsa.pub)" \
    elgalu/selenium:v2.45.0-ssh2

I get Selenium failed me for the last time every time. The first time I've ran the command I actually got same error but for the tomcat server.

Running on mac.

Document how to connect from Mac - OSX

docker run --rm --name=hub -p 4444:24444 -p 5930:25900 \ -e CHROME=false -e FIREFOX=false elgalu/selenium:2.48.2c
-- INFO: Available Firefox Versions: 42.0
-- INFO: Container USER var is: 'application', $(whoami) returns 'application', UID is '998'
-- INFO: Will use $USER 'application' and $(whoami) is 'application'
2015-11-18 18:51:43,339 INFO Included extra file "/etc/supervisor/conf.d/browserstack.conf" during parsing
2015-11-18 18:51:43,339 INFO Included extra file "/etc/supervisor/conf.d/novnc.conf" during parsing
2015-11-18 18:51:43,340 INFO Included extra file "/etc/supervisor/conf.d/saucelabs.conf" during parsing
2015-11-18 18:51:43,340 INFO Included extra file "/etc/supervisor/conf.d/selenium-hub.conf" during parsing
2015-11-18 18:51:43,341 INFO Included extra file "/etc/supervisor/conf.d/selenium-node-chrome.conf" during parsing
2015-11-18 18:51:43,341 INFO Included extra file "/etc/supervisor/conf.d/selenium-node-firefox.conf" during parsing
2015-11-18 18:51:43,341 INFO Included extra file "/etc/supervisor/conf.d/sshd.conf" during parsing
2015-11-18 18:51:43,342 INFO Included extra file "/etc/supervisor/conf.d/video-rec.conf" during parsing
2015-11-18 18:51:43,342 INFO Included extra file "/etc/supervisor/conf.d/vnc.conf" during parsing
2015-11-18 18:51:43,342 INFO Included extra file "/etc/supervisor/conf.d/xmanager.conf" during parsing
2015-11-18 18:51:43,343 INFO Included extra file "/etc/supervisor/conf.d/xterm.conf" during parsing
2015-11-18 18:51:43,343 INFO Included extra file "/etc/supervisor/conf.d/xvfb.conf" during parsing
2015-11-18 18:51:43,353 INFO RPC interface 'supervisor' initialized
2015-11-18 18:51:43,354 INFO RPC interface 'supervisor' initialized
2015-11-18 18:51:43,354 INFO supervisord started with pid 61
2015-11-18 18:51:44,360 INFO spawned: 'xvfb' with pid 64
2015-11-18 18:51:44,367 INFO spawned: 'xmanager' with pid 65
2015-11-18 18:51:44,376 INFO spawned: 'vnc' with pid 67
2015-11-18 18:51:44,383 INFO spawned: 'sshd' with pid 69
2015-11-18 18:51:44,394 INFO spawned: 'selenium-hub' with pid 70
2015-11-18 18:51:44,406 INFO spawned: 'xterm' with pid 74
2015-11-18 18:51:44,417 INFO success: xvfb entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-11-18 18:51:44,427 INFO success: xmanager entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-11-18 18:51:44,427 INFO success: vnc entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-11-18 18:51:44,428 INFO success: sshd entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-11-18 18:51:44,428 INFO success: selenium-hub entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-11-18 18:51:44,430 INFO success: xterm entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)

error class xmlrpclib.Fault SHUTDOWN_STATE xmlrpclib.py

I see this xmlrpclib.Fault upon SIGINT or docker stop termination, which is unfortunate because the container seems to end gracefully anyway:

$ docker run --rm -ti -m 4000M --cpu-quota=0 --name=grid -p=4470:24444 -p=5920:25900 -p=2222:22222 -e DISABLE_ROLLBACK=true -e VIDEO=false -e MEM_JAVA="1024m" -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" -v $(pwd)/videos:/videos -v /dev/shm:/dev/shm elgalu/selenium:2.47.1m
WARNING: Your kernel does not support swap limit capabilities, memory limited without swap.
-- INFO: Available Firefox Versions: 24.0, 25.0.1, 26.0, 27.0.1, 28.0, 29.0.1, 30.0, 31.0, 32.0.3, 33.0.3, 34.0.5, 35.0.1, 36.0.4, 37.0.2, 38.0.6, 39.0.3, 40.0.3, 41.0.1
-- INFO: Container USER var is: 'application', $(whoami) returns 'application', UID is '998'
-- INFO: Will use $USER 'application' and $(whoami) is 'application'
2015-10-04 22:35:25,799 INFO Included extra file "/etc/supervisor/conf.d/browserstack.conf" during parsing
2015-10-04 22:35:25,799 INFO Included extra file "/etc/supervisor/conf.d/novnc.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/saucelabs.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/selenium-hub.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/selenium-node-chrome.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/selenium-node-firefox.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/sshd.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/video-rec.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/vnc.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/xmanager.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/xterm.conf" during parsing
2015-10-04 22:35:25,800 INFO Included extra file "/etc/supervisor/conf.d/xvfb.conf" during parsing
2015-10-04 22:35:25,810 INFO RPC interface 'supervisor' initialized
2015-10-04 22:35:25,810 INFO RPC interface 'supervisor' initialized
2015-10-04 22:35:25,810 INFO supervisord started with pid 60
2015-10-04 22:35:26,812 INFO spawned: 'xvfb' with pid 79
2015-10-04 22:35:26,813 INFO spawned: 'xmanager' with pid 80
2015-10-04 22:35:26,815 INFO spawned: 'vnc' with pid 81
2015-10-04 22:35:26,816 INFO spawned: 'sshd' with pid 82
2015-10-04 22:35:26,817 INFO spawned: 'selenium-hub' with pid 83
2015-10-04 22:35:26,819 INFO spawned: 'selenium-node-chrome' with pid 84
2015-10-04 22:35:26,820 INFO spawned: 'selenium-node-firefox' with pid 86
2015-10-04 22:35:26,822 INFO spawned: 'xterm' with pid 87
2015-10-04 22:35:26,823 INFO success: xvfb entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: xmanager entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: vnc entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: sshd entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: selenium-hub entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: selenium-node-chrome entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: selenium-node-firefox entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2015-10-04 22:35:26,824 INFO success: xterm entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
^CTrapped SIGTERM/SIGINT/x so shutting down supervisord gracefully...
2015-10-04 22:35:33,060 WARN received SIGINT indicating exit request
2015-10-04 22:35:33,060 INFO waiting for sshd, vnc, xterm, selenium-hub, xvfb, selenium-node-chrome, xmanager, selenium-node-firefox to die
2015-10-04 22:35:33,146 INFO stopped: xterm (terminated by SIGINT)
error: <class 'xmlrpclib.Fault'>, <Fault 6: 'SHUTDOWN_STATE'>: file: /usr/lib/python2.7/xmlrpclib.py line: 799
2015-10-04 22:35:33,147 INFO stopped: selenium-node-firefox (terminated by SIGTERM)
2015-10-04 22:35:33,148 INFO stopped: selenium-node-chrome (terminated by SIGTERM)
2015-10-04 22:35:33,229 INFO stopped: selenium-hub (terminated by SIGTERM)
2015-10-04 22:35:33,230 INFO stopped: sshd (terminated by SIGTERM)
error: <class 'xmlrpclib.Fault'>, <Fault 6: 'SHUTDOWN_STATE'>: file: /usr/lib/python2.7/xmlrpclib.py line: 799
2015-10-04 22:35:33,231 INFO stopped: vnc (terminated by SIGTERM)
2015-10-04 22:35:33,236 INFO stopped: xmanager (exit status 0)
2015-10-04 22:35:33,240 WARN received SIGTERM indicating exit request
2015-10-04 22:35:34,242 INFO stopped: xvfb (terminated by SIGTERM)

Unsure if it's a supervisor issue, reference: Supervisor/supervisor#48

Record a selenium session

@elgalu another support question, wondering if you know

Shoov is integrated with docker-selenium (currently on DEV, but it works really nice!), and my next thought is video recording the session, a la sauce labs. Do you have any experience with such a thing, or can provide some pointers?

Retrying/Waiting for Selenium... and failing

From time to time, when I try to run the docker, I receive this error:

The VNC desktop is:      nardi:0
PORT=5900

******************************************************************************
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?

The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:

    x11vnc -ncache 10 ...

One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching

Obt-Message: Xinerama extension is not present on the server
Obt-Message: XRandR extension is not present on the server
-- Retrying/waiting for Selenium in 0.1 seconds...
01:50:59.277 INFO - Launching a standalone server
-- Retrying/waiting for Selenium in .2 seconds...
04/06/2015 01:50:59 Got connection from client 127.0.0.1
04/06/2015 01:50:59   other clients:
04/06/2015 01:50:59 webSocketsHandshake: unknown connection error
04/06/2015 01:50:59 Client 127.0.0.1 gone
04/06/2015 01:50:59 Statistics             events    Transmit/ RawEquiv ( saved)
04/06/2015 01:50:59  TOTALS              :      0 |         0/        0 (  0.0%)
04/06/2015 01:50:59 Statistics             events    Received/ RawEquiv ( saved)
04/06/2015 01:50:59  TOTALS              :      0 |         0/        0 (  0.0%)
01:50:59.444 INFO - Java: Oracle Corporation 25.45-b02
01:50:59.444 INFO - OS: Linux 3.13.0-24-generic amd64
01:50:59.473 INFO - v2.45.0, with Core v2.45.0. Built from revision 5017cb8
-- Retrying/waiting for Selenium in .4 seconds...
01:50:59.650 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{ensureCleanSession=true, browserName=internet explorer, version=, platform=WINDOWS}] does not match with current platform: LINUX
01:50:59.741 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
01:50:59.743 INFO - Version Jetty/5.1.x
01:50:59.746 INFO - Started HttpContext[/selenium-server,/selenium-server]
-- Retrying/waiting for Selenium in .8 seconds...
-- Retrying/waiting for Selenium in 1.6 seconds...
-- Retrying/waiting for Selenium in 3.2 seconds...
-- Retrying/waiting for Selenium in 6.4 seconds...
-- Retrying/waiting for Selenium in 12.8 seconds...
Selenium failed me for the last time! (curl -s http://localhost:4444/wd/hub/status)

I don't know what and when it happens. Sometimes when I wait an hour or so, it manages to connect to Selenium correct.

What may be causing this?

Problems with Chrome

Hello,

I successfully started the hub and one Firefox node, and connected fine from iPython and run a test. When trying the Chrome node, it times out with the following output:

Note that I did not rebuild the container images, but used the public ones directly.

02:43:35.226 INFO - Executing: [new session: Capabilities [{platform=ANY, javascriptEnabled=true, browserName=chrome, version=}]])
02:43:35.227 INFO - Creating a new session for Capabilities [{platform=ANY, javascriptEnabled=true, browserName=chrome, version=}]
Starting ChromeDriver 2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48) on port 24907
Only local connections are allowed.
[0.504][WARNING]: PAC support disabled because there is no system implementation
02:44:36.274 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'd67605f1dc64', ip: '172.17.0.16', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.4-200.fc20.x86_64', java.version: '1.7.0_65'
Driver info: driver.version: unknown
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:175)
at org.openqa.selenium.remote.server.DefaultSession.(DefaultSession.java:111)
at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:88)
at org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:108)
at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:57)
at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:1)
at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:112)
at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:172)
at org.openqa.selenium.remote.server.DriverServlet.handleRequest(DriverServlet.java:201)
at org.openqa.selenium.remote.server.DriverServlet.doPost(DriverServlet.java:163)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.openqa.selenium.remote.server.DriverServlet.service(DriverServlet.java:129)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.openqa.jetty.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.openqa.jetty.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:680)
at org.openqa.jetty.jetty.servlet.ServletHandler.handle(ServletHandler.java:571)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1526)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1479)
at org.openqa.jetty.http.HttpServer.service(HttpServer.java:920)
at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243)
at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:358)
at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:537)
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'd67605f1dc64', ip: '172.17.0.16', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.4-200.fc20.x86_64', java.version: '1.7.0_65'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:69)
at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance(DefaultDriverProvider.java:53)
at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:54)
at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:214)
at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:168)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:59)
... 9 more
Caused by: org.openqa.selenium.WebDriverException: chrome not reachable
(Driver info: chromedriver=2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48),platform=Linux 3.16.4-200.fc20.x86_64 x86_64) (WARNING: The server did not provide any stacktrace
information)
Command duration or timeout: 60.53 seconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'd67605f1dc64', ip: '172.17.0.16', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.4-200.fc20.x86_64', java.version: '1.7.0_65'
Driver info: org.openqa.selenium.chrome.ChromeDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:126)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:139)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:171)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:139)
... 14 more
02:44:36.278 WARN - Exception: chrome not reachable
(Driver info: chromedriver=2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48),platform=Linux 3.16.4-200.fc20.x86_64 x86_64) (WARNING: The server did not provide any stacktrace
information)
Command duration or timeout: 60.53 seconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'd67605f1dc64', ip: '172.17.0.16', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.4-200.fc20.x86_64', java.version: '1.7.0_65'
Driver info: org.openqa.selenium.chrome.ChromeDriver
^C*** Shutting down runit daemon (PID 94)...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.