-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathemulation.go
131 lines (118 loc) · 3.96 KB
/
emulation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
package cdp
import "context"
//设置userAgent
func (obj *WebSock) EmulationSetUserAgentOverride(preCtx context.Context, userAgent string) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setUserAgentOverride",
Params: map[string]any{
"userAgent": userAgent,
},
})
}
type Viewport struct {
Width int `json:"width"`
Height int `json:"height"`
}
type Device struct {
UserAgent string `json:"user_agent"`
Viewport Viewport `json:"viewport"`
DeviceScaleFactor float64 `json:"device_scale_factor"`
IsMobile bool `json:"is_mobile"`
HasTouch bool `json:"has_touch"`
}
//设置屏幕显示
func (obj *WebSock) EmulationSetDeviceMetricsOverride(preCtx context.Context, device Device) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setDeviceMetricsOverride",
Params: map[string]any{
"width": device.Viewport.Width,
"height": device.Viewport.Height,
"deviceScaleFactor": device.DeviceScaleFactor,
"mobile": device.IsMobile,
},
})
}
//设置是否支持触摸
func (obj *WebSock) EmulationSetTouchEmulationEnabled(preCtx context.Context, hasTouch bool) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setTouchEmulationEnabled",
Params: map[string]any{
"enabled": hasTouch,
},
})
}
//设置地理位置
func (obj *WebSock) EmulationSetGeolocationOverride(preCtx context.Context, latitude, longitude float64) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setGeolocationOverride",
Params: map[string]any{
"latitude": latitude,
"longitude": longitude,
"accuracy": 100,
},
})
}
//设置硬件并发数
func (obj *WebSock) EmulationSetHardwareConcurrencyOverride(preCtx context.Context, hardwareConcurrency int) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setHardwareConcurrencyOverride",
Params: map[string]any{
"hardwareConcurrency": hardwareConcurrency,
},
})
}
//允许覆盖自动化标志
func (obj *WebSock) EmulationSetAutomationOverride(preCtx context.Context, enabled bool) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setAutomationOverride",
Params: map[string]any{
"enabled": enabled,
},
})
}
//使用指定的区域设置覆盖默认主机系统区域设置。例如: en_US
func (obj *WebSock) EmulationSetLocaleOverride(preCtx context.Context, locale string) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setLocaleOverride",
Params: map[string]any{
"locale": locale,
},
})
}
//使用指定的时区覆盖默认主机系统时区。
func (obj *WebSock) EmulationSetTimezoneOverride(preCtx context.Context, timezoneId string) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setTimezoneOverride",
Params: map[string]any{
"timezoneId": timezoneId,
},
})
}
//是否应始终隐藏滚动条。
func (obj *WebSock) EmulationSetScrollbarsHidden(preCtx context.Context, hidden bool) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setScrollbarsHidden",
Params: map[string]any{
"hidden": hidden,
},
})
}
//设置指定的页面比例因子
func (obj *WebSock) EmulationSetPageScaleFactor(preCtx context.Context, pageScaleFactor float64) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setPageScaleFactor",
Params: map[string]any{
"pageScaleFactor": pageScaleFactor,
},
})
}
//设置空闲状态
func (obj *WebSock) EmulationSetIdleOverride(preCtx context.Context, isUserActive, isScreenUnlocked bool) (RecvData, error) {
return obj.send(preCtx, commend{
Method: "Emulation.setIdleOverride",
Params: map[string]any{
"isUserActive": isUserActive, //用户是否活动
"isScreenUnlocked": isScreenUnlocked, //屏幕是否上锁
},
})
}