Create Virtual Sensor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Want more browser support for this feature? Tell us why.
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.
Syntax
| Method | URI template |
|---|---|
POST |
/session/{session id}/sensor |
URL parameters
session id-
Identifier of the session.
Payload
The input is an object:
type-
A 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. connectedOptional-
A boolean indicating whether the sensor is able to provide readings. Defaults to
true. maxSamplingFrequencyOptional-
A number, in hertz, specifying the upper bound of the sampling frequency that the virtual sensor supports.
minSamplingFrequencyOptional-
A number, in hertz, specifying the lower bound of the sampling frequency that the virtual sensor supports.
Return value
null if successful.
Errors
invalid session id-
Session does not exist.
invalid argument-
The
typeis 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 ifminSamplingFrequencyis greater thanmaxSamplingFrequency.
Examples
>Creating a virtual sensor
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/sensor
The server responds with a null value to indicate success:
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
{"value":null}
Specifications
| Specification |
|---|
| Generic Sensor API> # create-virtual-sensor-command> |
Browser compatibility
See also
- Update Virtual Sensor Reading command
- Get Virtual Sensor Information command
- Delete Virtual Sensor command
- Sensor APIs