glorylo / Joyride

A cross platform mobile framework for automating acceptance tests using appium
BSD 3-Clause "New" or "Revised" License
9 stars 8 forks source link

UIAutomation is deprecated in Appium 1.6, will break several Joyride methods #2

Closed asnaith closed 2 years ago

asnaith commented 7 years ago

Any joyride methods using the uiautomation locator strategy will not work on Appium 1.6 for iOS 10 testing as only XCUItest is supported (see release notes: https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/migrating-to-xcuitest.md).

Putting this issue here as a placeholder issue so the joyride methods can be updated once Appium have implemented a new native locator strategy for XCUITest.

Affected joyride methods can be found here:

https://github.com/glorylo/Joyride/blob/b6e15113f800d7f13e97a51db0f0fa2ee2375d19/Joyride/Extensions/IosDriverExtension.cs

and here:

https://github.com/glorylo/Joyride/blob/b6e15113f800d7f13e97a51db0f0fa2ee2375d19/Joyride/Platforms/Ios/IosScreen.cs

asnaith commented 7 years ago

We might want to leave the existing method the navigation bar (HasNavigationBarTitled) on IosScreen.cs for backwards compatibility. Anyone testing on iOS 10 only can always just put in an override for any class that inherits from IosScreen e.g :

public override bool HasNavigationBarTitled(string title, int timeoutSecs)
 {
     var xpath = "//XCUIElementTypeNavigationBar[1]/XCUIElementTypeStaticText[@label='" + title + "']";
     var element = Driver.FindElement(By.XPath(xpath), timeoutSecs);
     return (element != null);
 }

Other issue still remains, can't be done until Appium implement a native locator strategy for XCUITest