The Create Virtual Sensor command of the WebDriver API creates a virtual sensor of a given type, which overrides the platform sensor of the same type. This lets tests exercise the Sensor APIs with predetermined readings instead of relying on real hardware. While the virtual sensor exists, new connections to a sensor of the same type in the top-level browsing context use the virtual sensor instead of the platform sensor.
Note: Sensor instances of the same type can coexist and use different device sensors. A sensor already connected to a real, hardware sensor continues receiving readings from it and switches to the virtual sensor only if it connects again.
| Method | URI template |
|---|---|
POST | /session/{session id}/sensor |
session idIdentifier of the session.
The input is an object:
typeA string identifying the virtual sensor type to create. Possible values include "ambient-light", "accelerometer", and "gyroscope". Only one virtual sensor of a given type can exist at a time in the top-level browsing context.
connected OptionalA boolean indicating whether the sensor is able to provide readings. Defaults to true.
maxSamplingFrequency OptionalA number, in hertz, specifying the upper bound of the sampling frequency that the virtual sensor supports.
minSamplingFrequency OptionalA number, in hertz, specifying the lower bound of the sampling frequency that the virtual sensor supports.
null if successful.
invalid session idSession does not exist.
invalid argumentThe type is not a string, is not a supported virtual sensor type, or a virtual sensor of that type already exists. The specified sampling frequency values are invalid if they are not a number or if minSamplingFrequency is greater than maxSamplingFrequency.
With a WebDriver server running on localhost:4444, assume an active session has been created. To create a virtual AmbientLightSensor, send its type in the request payload, replacing ID with the sessionId from the New Session response:
curl -i -H "Content-Type: application/json" \
-d '{"type": "ambient-light"}' \
http://localhost:4444/session/ID/sensorThe server responds with a null value to indicate success:
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
{"value":null}