Download, Start & Stop Selenium Server with PHP >= 5.4 as a kind of a client or by command line.
This package was written to avoid downloading selenium by hand and to avoid those complex commands to make selenium to start. It also allows you to use it with-in your own package.
With Composer:
composer require --dev fonsecas72/selenium-handler
You can create a downloader, a starter, a stopper and a watcher. E.g. to create a starter:
$seleniumStarterOptions = new SeleniumStartOptions();
$process = new Process('');
$exeFinder = new ExecutableFinder();
$waiter = new ResponseWaitter(new Client());
$starter = new SeleniumStarter($seleniumStarterOptions, $process, $waiter, $exeFinder);
Then you can call:
$starter->start();
And it will just work.
Of course, you can also change de default settings. This is done by calling options classes that each one if this has. E.g. to change a setting for the starter:
// timeout is changed in the "waitter" class:
$starter->getResponseWaitter()->setTimeout($input->getOption('timeout'));
// to set a specific selenium location you do:
$starterOptions = $starter->getStartOptions();
$starterOptions->setSeleniumJarLocation($input->getOption('selenium-location'));
// to enable xvfb:
$starterOptions->enabledXvfb();
You can also create a "handler" that will allow you to start, stop, download, etc. through one single class.
$this->handler = new SeleniumHandler($starter, $stopper, $downloader, $logWatcher);
see the tests and the built-in commands for more examples, or open an issue
(it will download to current directory by default)
bin/selenium get
You can set the destination directory with
bin/selenium get -d someDir/
You can set the selenium version with
bin/selenium get -s 2.44
bin/selenium start
You can give the selenium location with
bin/selenium start --selenium-location /someDir/selenium-server-standalone.jar
Optionally, you may choose whether or not you want to use xvfb
bin/selenium start --xvfb
You can throw selenium options too. For example: You can set the firefox profile to use:
bin/selenium start --selextra firefox-profile=/someDir/toFirefoxProfile
You can also set how much you are willing to wait for selenium to start (in seconds)
bin/selenium start --timeout 60
bin/selenium stop
You can also tail the selenium log after start with follow option:
bin/selenium start --follow
You can even track a specific log level
bin/selenium start --follow ERROR
This can be specially useful if you start selenium in the background before running tests.
bin/selenium start --follow ERROR &
Then if some error happens you will see it in your test log / output.