diff --git a/src/main/java/io/appium/java_client/Setting.java b/src/main/java/io/appium/java_client/Setting.java index b5f33ccb8..c3225a03c 100644 --- a/src/main/java/io/appium/java_client/Setting.java +++ b/src/main/java/io/appium/java_client/Setting.java @@ -33,6 +33,7 @@ public enum Setting { FIX_IMAGE_TEMPLATE_SIZE("fixImageTemplateSize"), CHECK_IMAGE_ELEMENT_STALENESS("checkForImageElementStaleness"), UPDATE_IMAGE_ELEMENT_POSITION("autoUpdateImageElementPosition"), + NORMALIZE_TAG_NAMES("normalizeTagNames"), IMAGE_ELEMENT_TAP_STRATEGY("imageElementTapStrategy"); private String name; diff --git a/src/main/java/io/appium/java_client/android/HasAndroidSettings.java b/src/main/java/io/appium/java_client/android/HasAndroidSettings.java index b9e7e1f2c..49eb982ad 100644 --- a/src/main/java/io/appium/java_client/android/HasAndroidSettings.java +++ b/src/main/java/io/appium/java_client/android/HasAndroidSettings.java @@ -84,4 +84,19 @@ default void configuratorSetKeyInjectionDelay(Duration delay) { default void configuratorSetActionAcknowledgmentTimeout(Duration timeout) { setSetting(Setting.WAIT_ACTION_ACKNOWLEDGMENT_TIMEOUT, timeout.toMillis()); } + + /** + * Setting this value to true will enforce source tree dumper + * to transliterate all class names used as XML tags to the limited + * set of ASCII characters supported by Apache Harmony + * lib and used by default in Android to avoid possible + * XML parsing exceptions caused by XPath lookup. + * The Unicode to ASCII transliteration is based on + * JUnidecode library (https://github.com/gcardone/junidecode). + * + * @param enabled Either true or false. The default value if false. + */ + default void normalizeTagNames(boolean enabled) { + setSetting(Setting.NORMALIZE_TAG_NAMES, enabled); + } }