Emulation¶
The emulation module overrides browser settings for device simulation. For full usage examples, see Emulation.
Methods¶
set_geolocation_override— simulate a geographic location (supportsuserContextsanderrorparameters)set_locale_override— override the browser locale (e.g."fr-FR")set_screen_orientation_override— set screen orientation ("portrait","landscape")set_timezone_override— change the browser's time zone (supportsuserContexts)set_network_conditions— simulate network speed/latencyset_user_agent_override— override the User-Agent string
Locale override¶
Screen orientation¶
await client.emulation.set_screen_orientation_override(
orientation="portrait",
contexts=["context-id-1"],
)
Geolocation with error simulation¶
# Simulate a position error (e.g. GPS unavailable)
await client.emulation.set_geolocation_override(
error={"type": "positionUnavailable"},
contexts=["context-id-1"],
)
# Or simulate a real position
await client.emulation.set_geolocation_override(
coordinates={"latitude": 35.6762, "longitude": 139.6503, "accuracy": 1.0},
user_contexts=["user-context-id-1"],
)
Reference¶
EmulationModule ¶
Module for emulating device environment conditions.
Commands
- set_geolocation — override geolocation coordinates
- set_network_conditions — throttle or simulate offline network
- set_timezone — override the browser timezone
- set_user_agent — override the User-Agent string
Example
await client.emulation.set_geolocation( coordinates={"latitude": 37.7749, "longitude": -122.4194}, contexts=[ctx_id], ) await client.emulation.set_timezone("America/Los_Angeles") await client.emulation.set_user_agent("MyBot/1.0")
Source code in bidiwave/modules/emulation.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | |
set_geolocation
async
¶
set_geolocation(coordinates: dict[str, float] | None = None, contexts: list[str] | None = None, user_contexts: list[str] | None = None, error: dict[str, str] | None = None) -> None
Overrides the geolocation coordinates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
dict[str, float] | None
|
Dict with 'latitude' and 'longitude' keys. None to clear the override. |
None
|
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|
error
|
dict[str, str] | None
|
Error dict to simulate, e.g. {"type": "positionUnavailable"}. |
None
|
Source code in bidiwave/modules/emulation.py
set_network_conditions
async
¶
set_network_conditions(offline: bool = True, contexts: list[str] | None = None, user_contexts: list[str] | None = None) -> None
Overrides network conditions.
Per the W3C BiDi spec (emulation.setNetworkConditions), the only
supported condition is offline emulation. Pass offline=False
to clear the override (sends networkConditions: null).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
offline
|
bool
|
True to simulate offline mode, False to clear. |
True
|
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|
Source code in bidiwave/modules/emulation.py
set_timezone
async
¶
set_timezone(timezone: str, contexts: list[str] | None = None, user_contexts: list[str] | None = None) -> None
Overrides the browser timezone.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
timezone
|
str
|
IANA timezone identifier (e.g. "America/New_York"). |
required |
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|
Source code in bidiwave/modules/emulation.py
set_user_agent
async
¶
set_user_agent(user_agent: str | None, contexts: list[str] | None = None, user_contexts: list[str] | None = None) -> None
Overrides the User-Agent string.
Per the W3C BiDi spec (emulation.setUserAgentOverride), only the User-Agent string itself can be overridden.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_agent
|
str | None
|
User-Agent string to set. None to clear the override. |
required |
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|
Source code in bidiwave/modules/emulation.py
set_locale
async
¶
set_locale(locale: str | None = None, contexts: list[str] | None = None, user_contexts: list[str] | None = None) -> None
Overrides the browser locale.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
locale
|
str | None
|
Locale identifier (e.g. "en-US", "fr-FR"). None to clear the override. |
None
|
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|
Source code in bidiwave/modules/emulation.py
set_screen_orientation
async
¶
set_screen_orientation(orientation: dict[str, Any] | None = None, contexts: list[str] | None = None, user_contexts: list[str] | None = None) -> None
Overrides the screen orientation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
orientation
|
dict[str, Any] | None
|
Dict with 'natural' ("portrait" or "landscape")
and 'type' ("portrait-primary", "portrait-secondary",
"landscape-primary", "landscape-secondary") per the spec's
emulation.ScreenOrientation. None to clear the override
(sends |
None
|
contexts
|
list[str] | None
|
Context IDs to apply to. None = all. |
None
|
user_contexts
|
list[str] | None
|
User context IDs to apply to. None = all. |
None
|