Ghost Driver Download
Apr 06, 2017 Ghost Driver is an implementation of the Remote WebDriver Wire protocol, using PhantomJS as back-end - detro/ghostdriver. GhostBuster scans your registry for ghosted devices (hardware no longer connected to the PC) and then removes them with a single mouse click. This application enumerates all devices, detects ghosted devices and removes them if they match selectable device types and/or device classes.
Ghost Driver is a pure JavaScript implementation of theWebDriver Wire Protocolfor PhantomJS.It's a Remote WebDriver that uses PhantomJS as back-end.
GhostDriver is designed to be integral part of PhantomJS itself, but it's developed in isolation and progress is trackedby this Repository.
- Current GhostDriver stable version:see releases
- PhantomJS-integrated version is
'1.2.0'
(detro@2af7099a9) :contained in PhantomJS'2.1.1'
- Current PhantomJSDriver Java bindings stable version: seeMaven
For more info, please take a look at the changelog.
The project was created and is lead by Ivan De Marino.
IRC channel: #phantomjs-ghostdriver.
Avg free antivirus for windows 7. This makes the software much easier to make use of since you don’t have to take additional steps to be safeguarded from on-line hazards. But it also can obtain frustrating to have pop-up messages disturb your online work, especially since AVG shows a lot of pop-up advertisements to lure you to buy other AVG items.
Setup
- Download latest stable PhantomJS from here
- Selenium version
'>= 3.1.0
'
THAT'S IT!! Because of latest stable GhostDriver being embedded in PhantomJS,you shouldn't need anything else to get started.
Register GhostDriver with a Selenium Grid hub
- Launch the grid server, which listens on 4444 by default:
java -jar /path/to/selenium-server-standalone-<SELENIUM VERSION>.jar -role hub
- Register with the hub:
phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://127.0.0.1:4444
- Now you can use your normal webdriver client with
http://127.0.0.1:4444
and just requestbrowserName: phantomjs
(Java) Bindings
This project provides WebDriver bindings for Java under the name PhantomJSDriver.Here is the JavaDoc.
Bindings for other languages (C#, Python, Ruby, ..) are developed and maintainedunder the same name within the Selenium project itself.
Include Java Bindings in your Maven project
For versions >= 2.0.0, add the following to your pom.xml
:
Include Java Bindings in your Gradle project
Just add the following to your build.gradle
:
Alternative: how to use it via RemoteWebDriver
Launching PhantomJS in Remote WebDriver mode it's simple:
Once started, you can use any RemoteWebDriver
implementation to send commands to it. I advice to take a look to the/test
directory for examples.
F.A.Q.
What extra WebDriver capabilities
GhostDriver offers?
- GhostDriver extra Capabilities
phantomjs.page.settings.SETTING = VALUE
- Configurepage.settings
on PhantomJS internal page objects (windows in WebDriver context)(see reference)phantomjs.page.customHeaders.HEADER = VALUE
- Add extra HTTP Headerswhen loading a URL(see reference)phantomjs.page.whitelist
- an array of regex expressions of urls to accept. eg. ['my-awesome-website.com']phantomjs.page.blacklist
- array of regex expressions of urls to ignore. The blacklist overrides the whitelist. eg. ['google.com', 'github.com']unhandledPromptBehavior
- set todismiss
to automatically dismissall user prompts or set toaccept
to automatically accept all user promptsloggingPrefs
- ghostdriver has two logsbrowser
andhar
. The logsdefault to'OFF'
. follow the DesiredCapabilitiesdocumentation to enable the logs.
- PhantomJSDriver Java-binding Capabilities
phantomjs.binary.path
- Specify path to PhantomJS executable to usephantomjs.ghostdriver.path
- Specify path to GhostDrivermain/src.js
script to use; allows to use a different version of GhostDriver then the oneembed in PhantomJSphantomjs.cli.args
- Specify command line arguments to pass to thePhantomJS executablephantomjs.ghostdriver.cli.args
- Specify command line argument to pass toGhostDriver (works only in tandem withphantomjs.ghostdriver.path
)
Want to help? Read on!
GhostDriver pushed the evolution of PhantomJS from the start. All the features required by PhantomJS to fit GhostDriver were designed to still feel 'consistent' and 'at home' with PhantomJS alone.
To drive that effort, I worked on a PhantomJS fork, and thenpushed changes to PhantomJS master once agreed with the rest of the team on the changes.
If you are planning to contribute, that is the PhantomJS you should use.
Run validation tests
Here I show how to clone this repo and kick start the (Java) tests. You needJava SDKto run them. ghostdriver requires Java 1.8.
Daemon Tools
git clone https://github.com/detro/ghostdriver.git
- Configure
phantomjs_exec_path
insideghostdriver/test/config.ini
to point at the build of PhantomJS you just did cd ghostdriver/test/java; ./gradlew test
Alternative: Run GhostDriver yourself and launch tests against that instance
phantomjs --webdriver=PORT
- Configure
driver
insideghostdriver/test/config.ini
to point at the URLhttp://localhost:PORT
cd ghostdriver/test/java; ./gradlew test
Project Directory Structure
Here follows the output of the tree -hd -L 3
command, trimmed of files and 'build directories':
WebDriver Atoms
Being GhostDriver a WebDriver implementation, it embeds the standard/default WebDriver Atoms to operate inside openwebpages. In the specific, the Atoms cover scenarios where the 'native' PhantomJS require('webpage')
don't stretch.
Documentation about how those work can be found hereand here.
How are those Atoms making their way into GhostDriver? If you look inside the /tools
directory you can find a bashscript: /tools/import_atoms.sh
. That script accepts the path to a Selenium local repo, runs theCrazyFunBuild to produce the compressed/minified Atoms,grabs those and copies them over to the /src/third_party/webdriver-atoms
directory.
The Atoms original source lives inside the Selenium repo in the subtree of /javascript
. To understand how the buildworks, you need to spend a bit of time reading aboutCrazyFunBuild: worth your time if you want to contribute toGhostDriver (or any WebDriver, as a matter of fact).
One thing it's important to mention, is that CrazyFunBuild relies on the content of build.desc
file to understandwhat and how to build it. Those files define what exactly is built and what it depends on. In the case of the Atoms,the word 'build' means 'run Google Closure Compiler over a set of files and compress functions into Atoms'.The definition of the Atoms that GhostDriver uses lives at /tools/atoms_build_dir/build.desc
.
Let's take this small portion of our build.desc
:
The first part (js_library(name = 'deps'..
) declares what are the dependency of this build.desc
Ethernet port driver windows 7. : with that CrazyFunBuild knowswhat to build before fulfilling our build.
The second part (js_fragment(..
) defines an Atom: the get_element_from_cache
is going to be the name ofan Atom to build; it can be found in the module bot.inject.cache
and is realised by the function namedbot.inject.cache.getElement
.
The third part (js_library(name = 'build_atoms'..
) is a list of the Atoms (either defined by something like the secondpart or in one of the files we declared as dependency) that we want to build.
If you reached this stage in understanding the Atoms, you are ready to go further by yourself.
Contributions and/or Bug Report
You can contribute by testing GhostDriver, reporting bugs and issues, or submitting Pull Requests.Any help is welcome, but bear in mind the following base principles:
Ghost Shark Gaming Mouse Driver Download
- Issue reporting requires a reproducible example, otherwise will most probably be closed without warning
- Squash your commits by theme: I prefer a clean, readable log
- Maintain consistency with the code-style you are surrounded by
- If you are going to make a big, substantial change, let's discuss it first
- I HATE CoffeeScript: assume I'm going to laugh off any 'contribution' that contains such aberrational crap!
- Open Source is NOT a democracy (and I mean it!)
License
GhostDriver is distributed under BSD License.
Release names
Ghost Rider
See here.