Skip to content

Commit 79541b4

Browse files
author
汪啸
committed
add support to set UiAutomator Congfigurator values
1 parent 84abc80 commit 79541b4

2 files changed

Lines changed: 61 additions & 2 deletions

File tree

src/main/java/io/appium/java_client/AppiumSetting.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
*/
2222
public enum AppiumSetting {
2323

24-
IGNORE_UNIMPORTANT_VIEWS("ignoreUnimportantViews");
24+
IGNORE_UNIMPORTANT_VIEWS("ignoreUnimportantViews"),
25+
CONFIGURATOR("configurator");
2526
private String name;
2627

2728
private AppiumSetting(String name) {

src/main/java/io/appium/java_client/android/AndroidDriver.java

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import io.appium.java_client.AppiumDriver;
3838
import io.appium.java_client.AppiumSetting;
3939
import io.appium.java_client.FindsByAndroidUIAutomator;
40-
import io.appium.java_client.SwipeElementDirection;
4140
import io.appium.java_client.android.internal.JsonToAndroidElementConverter;
4241
import io.appium.java_client.remote.MobilePlatform;
4342
import io.appium.java_client.service.local.AppiumDriverLocalService;
@@ -395,6 +394,65 @@ public void ignoreUnimportantViews(Boolean compress) {
395394
setSetting(AppiumSetting.IGNORE_UNIMPORTANT_VIEWS, compress);
396395
}
397396

397+
/**
398+
* Set the `configurator` setting. *Android-only method*.
399+
* Sets the timeouts and delays in {@code com.android.uiautomator.core.Configurator}
400+
*
401+
* @param method set method names in {@code com.android.uiautomator.core.Configurator}
402+
* @param value set method argument, in milliseconds, 0 would reset to their default values
403+
*/
404+
private void configuratorSet(String method, int value) {
405+
setSetting(AppiumSetting.CONFIGURATOR,
406+
String.format("{\"method\":\"%s\",\"value\":%d}", method, value));
407+
}
408+
409+
/**
410+
* invoke {@code setWaitForIdleTimeout} in {@code com.android.uiautomator.core.Configurator}
411+
*
412+
* @param timeout in milliseconds, 0 would reset to its default value
413+
*/
414+
public void configuratorSetWaitForIdleTimeout(int timeout) {
415+
configuratorSet("setWaitForIdleTimeout", timeout);
416+
}
417+
418+
/**
419+
* invoke {@code setWaitForSelectorTimeout} in {@code com.android.uiautomator.core.Configurator}
420+
*
421+
* @param timeout in milliseconds, 0 would reset to its default value
422+
*/
423+
public void configuratorSetWaitForSelectorTimeout(int timeout) {
424+
configuratorSet("setWaitForSelectorTimeout", timeout);
425+
}
426+
427+
/**
428+
* invoke {@code setScrollAcknowledgmentTimeout} in {@code com.android.uiautomator.core.Configurator}
429+
*
430+
* @param timeout in milliseconds, 0 would reset to its default value
431+
*/
432+
public void configuratorSetScrollAcknowledgmentTimeout(int timeout) {
433+
configuratorSet("setScrollAcknowledgmentTimeout", timeout);
434+
}
435+
436+
/**
437+
* invoke {@code configuratorSetKeyInjectionDelay} in {@code com.android.uiautomator.core.Configurator}
438+
*
439+
* @param delay in milliseconds, 0 would reset to its default value
440+
*/
441+
public void configuratorSetKeyInjectionDelay(int delay) {
442+
configuratorSet("setKeyInjectionDelay", delay);
443+
}
444+
445+
/**
446+
* invoke {@code setActionAcknowledgmentTimeout} in {@code com.android.uiautomator.core.Configurator}
447+
*
448+
* @param timeout in milliseconds, 0 would reset to its default value
449+
*/
450+
public void configuratorSetActionAcknowledgmentTimeout(int timeout) {
451+
configuratorSet("setActionAcknowledgmentTimeout", timeout);
452+
}
453+
454+
455+
398456
/**
399457
* @throws org.openqa.selenium.WebDriverException This method is not
400458
* applicable with browser/webview UI.

0 commit comments

Comments
 (0)