@@ -67,6 +67,7 @@ public class ChromiumOptions<T extends ChromiumOptions<?>> extends AbstractDrive
67
67
private final List <File > extensionFiles = new ArrayList <>();
68
68
private final List <String > extensions = new ArrayList <>();
69
69
private final Map <String , Object > experimentalOptions = new HashMap <>();
70
+ private Map <String , Object > androidOptions = new HashMap <>();
70
71
71
72
private final String capabilityName ;
72
73
@@ -193,6 +194,43 @@ public T setHeadless(boolean headless) {
193
194
return (T ) this ;
194
195
}
195
196
197
+ public T setAndroidPackage (String androidPackage ) {
198
+ Require .nonNull ("Android package" , androidPackage );
199
+ return setAndroidCapability ("androidPackage" , androidPackage );
200
+ }
201
+
202
+ public T setAndroidActivity (String activity ) {
203
+ Require .nonNull ("Android activity" , activity );
204
+ return setAndroidCapability ("androidActivity" , activity );
205
+ }
206
+
207
+ public T setAndroidDeviceSerialNumber (String serial ) {
208
+ Require .nonNull ("Android device serial number" , serial );
209
+ return setAndroidCapability ("androidDeviceSerial" , serial );
210
+ }
211
+
212
+ public T setUseRunningAndroidApp (boolean useIt ) {
213
+ return setAndroidCapability ("androidUseRunningApp" , useIt );
214
+ }
215
+
216
+ /**
217
+ * Process name of the Activity hosting the WebView (as given by ps).
218
+ * If not set, the process name is assumed to be the same as androidPackage.
219
+ */
220
+ public T setAndroidProcess (String processName ) {
221
+ Require .nonNull ("Android process name" , processName );
222
+ return setAndroidCapability ("androidProcess" , processName );
223
+ }
224
+
225
+ private T setAndroidCapability (String name , Object value ) {
226
+ Require .nonNull ("Name" , name );
227
+ Require .nonNull ("Value" , value );
228
+ Map <String , Object > newOptions = new TreeMap <>(androidOptions );
229
+ newOptions .put (name , value );
230
+ androidOptions = Collections .unmodifiableMap (newOptions );
231
+ return (T ) this ;
232
+ }
233
+
196
234
@ Override
197
235
protected Set <String > getExtraCapabilityNames () {
198
236
return Collections .singleton (capabilityName );
@@ -228,6 +266,8 @@ protected Object getExtraCapability(String capabilityName) {
228
266
extensions .stream ()
229
267
).collect (toList ())));
230
268
269
+ options .putAll (androidOptions );
270
+
231
271
return unmodifiableMap (options );
232
272
}
233
273
0 commit comments