Forum Discussion

meenakshiyadav1's avatar
meenakshiyadav1
Contributor
6 years ago

How to handle when most of the objects have a dynamic Parent

I am working on automating a xamarin form based iOSapp. In this app 50-60% of core functionality is being covered in popups built using Rg.Plugins.Popup library.I am facing issue in automating these popup windows.As per smartbear support team TC does not support popup built with this plugin.

The issue is that TC does not read them as xamarin XF objects but treat them as regular iOS objects which is treating them as windows with dyanamic index.The index of thsese window changes after each navigation. For example if I am on x window right now which TC is showing as window(1) and I navigate to some other area of application and then come back to same x window then index of window changes and TC reads window as window(10) this Please find screenshot attached to see details of it.

This Window object is available in all popups of entire app.

Aliases.Device.processQaA36020.Window(28).ScrollView().Button("", 0) ---button object

Aliases.Device.processQaA36020.Window(39).PickerView().TableView(0) ------TableView object

I can not Map these object because of this dynamic window object.I have tried clicking on 'Ok' 'Cancel' button using FindChild Method(by mentioning "Aliases.Device.processQaA36020" as parent)but it does not seem to be stable as at times it works and next it does not.So I cannot automate complex functioanlity availble in these poup using FindChild method . Also this approach does not seem to be reliable to automate 50-60% functionality of the app.

Can anyone please suggest a wayout for this problem.

  • You can also utilize "Extended Find" to bypass that Window entirely in your NameMapping.  

  • Manfred_F's avatar
    Manfred_F
    Regular Contributor

    Hi,

    You can

    1) map Your objects, then edit the mapping and replace the window Id by an asterisk ("*")

    2) just map the parent window (also use the asterisk), and save the control object into a variable.

        To access the sub-objects, use customer-defined script routines, to which You hand in the parent variable.

        In the routine, navigate to Your Button and hand it back.

     

    Regards,

    Manfred