From d67a5652d41e9739f9612a5ae1a5d7ffc0ea5a80 Mon Sep 17 00:00:00 2001 From: Valery Yatsynovich Date: Fri, 29 Oct 2021 01:02:26 +0300 Subject: [PATCH] chore: deprecate Windows UIAutomation selector --- .../java/io/appium/java_client/AppiumBy.java | 16 ------------- .../java/io/appium/java_client/MobileBy.java | 23 ++++++++++++++++--- .../pagefactory/bys/builder/Strategies.java | 21 ++++++++++------- .../tests/windows/WindowsWidgetTest.java | 2 +- 4 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/main/java/io/appium/java_client/AppiumBy.java b/src/main/java/io/appium/java_client/AppiumBy.java index 6d8c1543d..0f578b0b0 100644 --- a/src/main/java/io/appium/java_client/AppiumBy.java +++ b/src/main/java/io/appium/java_client/AppiumBy.java @@ -164,15 +164,6 @@ public static By iOSNsPredicateString(final String iOSNsPredicateString) { return new ByIosNsPredicate(iOSNsPredicateString); } - /** - * The Windows UIAutomation selector. - * @param windowsAutomation The element name in the Windows UIAutomation selector - * @return an instance of {@link AppiumBy.ByWindowsAutomation} - */ - public static By windowsAutomation(final String windowsAutomation) { - return new ByWindowsAutomation(windowsAutomation); - } - public static class ByAccessibilityId extends AppiumBy implements Serializable { public ByAccessibilityId(String accessibilityId) { @@ -242,13 +233,6 @@ protected ByIosNsPredicate(String locatorString) { super("-ios predicate string", locatorString, "iOSNsPredicate"); } } - - public static class ByWindowsAutomation extends AppiumBy implements Serializable { - - protected ByWindowsAutomation(String locatorString) { - super("-windows uiautomation", locatorString, "windowsAutomation"); - } - } } diff --git a/src/main/java/io/appium/java_client/MobileBy.java b/src/main/java/io/appium/java_client/MobileBy.java index 3d36a1aae..65f382ec7 100644 --- a/src/main/java/io/appium/java_client/MobileBy.java +++ b/src/main/java/io/appium/java_client/MobileBy.java @@ -16,6 +16,8 @@ package io.appium.java_client; +import java.io.Serializable; + import org.openqa.selenium.By; /** @@ -107,6 +109,17 @@ public static By iOSNsPredicateString(final String iOSNsPredicateString) { return new ByIosNsPredicate(iOSNsPredicateString); } + /** + * The Windows UIAutomation selector. + * @deprecated Not supported on the server side. + * @param windowsAutomation The element name in the Windows UIAutomation selector + * @return an instance of {@link MobileBy.ByWindowsAutomation} + */ + @Deprecated + public static By windowsAutomation(final String windowsAutomation) { + return new ByWindowsAutomation(windowsAutomation); + } + /** * This locator strategy is available in Espresso Driver mode. * @deprecated Use {@link AppiumBy#androidViewTag(String)} instead. @@ -261,13 +274,17 @@ protected ByIosNsPredicate(String locatorString) { /** * The Windows UIAutomation selector. - * @deprecated Use {@link AppiumBy.ByWindowsAutomation} instead. + * @deprecated Not supported on the server side. */ @Deprecated - public static class ByWindowsAutomation extends AppiumBy.ByWindowsAutomation { + public static class ByWindowsAutomation extends MobileBy implements Serializable { protected ByWindowsAutomation(String locatorString) { - super(locatorString); + super("-windows uiautomation", locatorString, "windowsAutomation"); + } + + @Override public String toString() { + return "By.windowsAutomation: " + getRemoteParameters().value(); } } diff --git a/src/main/java/io/appium/java_client/pagefactory/bys/builder/Strategies.java b/src/main/java/io/appium/java_client/pagefactory/bys/builder/Strategies.java index 03382dbcb..7b1d13ab1 100644 --- a/src/main/java/io/appium/java_client/pagefactory/bys/builder/Strategies.java +++ b/src/main/java/io/appium/java_client/pagefactory/bys/builder/Strategies.java @@ -16,18 +16,19 @@ package io.appium.java_client.pagefactory.bys.builder; -import io.appium.java_client.AppiumBy; -import io.appium.java_client.pagefactory.AndroidBy; -import io.appium.java_client.pagefactory.AndroidFindBy; - -import org.openqa.selenium.By; - import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import org.openqa.selenium.By; + +import io.appium.java_client.AppiumBy; +import io.appium.java_client.MobileBy; +import io.appium.java_client.pagefactory.AndroidBy; +import io.appium.java_client.pagefactory.AndroidFindBy; + enum Strategies { BYUIAUTOMATOR("uiAutomator") { @Override By getBy(Annotation annotation) { @@ -84,10 +85,14 @@ enum Strategies { .partialLinkText(getValue(annotation, this)); } }, + /** + * The Windows UIAutomation strategy. + * @deprecated Not supported on the server side. + */ + @Deprecated BYWINDOWSAUTOMATION("windowsAutomation") { @Override By getBy(Annotation annotation) { - return AppiumBy - .windowsAutomation(getValue(annotation, this)); + return MobileBy.windowsAutomation(getValue(annotation, this)); } }, BY_CLASS_CHAIN("iOSClassChain") { diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/windows/WindowsWidgetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/windows/WindowsWidgetTest.java index 8fbc23fd4..fbd9da9a6 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/windows/WindowsWidgetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/windows/WindowsWidgetTest.java @@ -1,6 +1,6 @@ package io.appium.java_client.pagefactory_tests.widget.tests.windows; -import static io.appium.java_client.AppiumBy.windowsAutomation; +import static io.appium.java_client.MobileBy.windowsAutomation; import static io.appium.java_client.pagefactory_tests.widget.tests.windows.AnnotatedWindowsWidget.WINDOWS_ROOT_WIDGET_LOCATOR; import static io.appium.java_client.pagefactory_tests.widget.tests.windows.DefaultWindowsWidget.WINDOWS_SUB_WIDGET_LOCATOR; import static io.appium.java_client.pagefactory_tests.widget.tests.windows.WindowsApp.WINDOWS_DEFAULT_WIDGET_LOCATOR;