1919import static io .appium .java_client .pagefactory .WidgetConstructorUtil .findConvenientConstructor ;
2020import static io .appium .java_client .remote .MobilePlatform .ANDROID ;
2121import static io .appium .java_client .remote .MobilePlatform .IOS ;
22+ import static io .appium .java_client .remote .MobilePlatform .WINDOWS ;
2223
2324import io .appium .java_client .pagefactory .bys .ContentType ;
2425import io .appium .java_client .remote .AutomationName ;
@@ -35,6 +36,8 @@ class OverrideWidgetReader {
3536 private static final String ANDROID_UI_AUTOMATOR = "androidUIAutomator" ;
3637 private static final String IOS_UI_AUTOMATION = "iOSUIAutomation" ;
3738 private static final String SELENDROID = "selendroid" ;
39+ private static final String IOS_XCUIT_AUTOMATION = "iOSXCUITAutomation" ;
40+ private static final String WINDOWS_AUTOMATION = "windowsAutomation" ;
3841
3942 @ SuppressWarnings ("unchecked" )
4043 private static Class <? extends Widget > getConvenientClass (Class <? extends Widget > declaredClass ,
@@ -83,10 +86,19 @@ static Class<? extends Widget> getMobileNativeWidgetClass(Class<? extends Widget
8386 return getConvenientClass (declaredClass , annotatedElement , ANDROID_UI_AUTOMATOR );
8487 }
8588
89+ if (IOS .equalsIgnoreCase (transformedPlatform ) && AutomationName .IOS_XCUI_TEST
90+ .equalsIgnoreCase (transformedAutomation )) {
91+ return getConvenientClass (declaredClass , annotatedElement , IOS_XCUIT_AUTOMATION );
92+ }
93+
8694 if (IOS .equalsIgnoreCase (transformedPlatform )) {
8795 return getConvenientClass (declaredClass , annotatedElement , IOS_UI_AUTOMATION );
8896 }
8997
98+ if (WINDOWS .equalsIgnoreCase (transformedPlatform )) {
99+ return getConvenientClass (declaredClass , annotatedElement , WINDOWS_AUTOMATION );
100+ }
101+
90102 return getDefaultOrHTMLWidgetClass (declaredClass , annotatedElement );
91103 }
92104
0 commit comments