Forum Discussion

luke_wisniewski's avatar
luke_wisniewski
New Contributor
13 years ago

Extending the UIA Plugin

Hello,



I was wondering if TestComplete provides any "hooks" for extending the UIA Plugin.  I'm looking for something similar to the support given by the custom extensions that can be written to add properties and methods to .NET controls.



Our current automation strategy is to use UIA for all of our automation needs.  However, the UIA Plugin does not support all of the control patterns necessary, and it's not feasible for us to continually request new releases of TestComplete each time we encounter an unsupported scenario.  Is there any way for us to extend this plugin ourselves to suit our business needs?



Thanks,

Luke

4 Replies

  • Tanya,



    We have used the SDK in the past to create custom extensions to .NET controls.  In this particular instance I'm looking for some guidance on extending UIA objects.  The model provided by the SDK to extend .NET controls does not seem to work for extending UIA objects.  Are there any samples, articles, or other guidance that you can provide to point us in the right direction?



    -Luke

  • Hi Luke,


     


    As far as I know, TestComplete uses the Microsoft UI Automation (UIA) technology as it is. What exactly do you want to use?


     

  • Tanya,



    Two examples that I have been unable to accomplish thus far:

    1. Selecting an item in a combobox.  UIA does this by calling the Select method of the SelectionItemPattern (http://msdn.microsoft.com/en-us/library/system.windows.automation.selectionitempattern.select.aspx).  However, this method does not show up in the list of available methods in TestComplete.

    2. Selecting an item that is not currently in view (i.e. scrolled out of view).  UIA does this by using the ItemContainerPattern.FindItemByProperty method combined with the VirtualizedItemPattern.Realize method.  I'm unable to see either of these methods in TestComplete.



    But my real question is more generic.  When we encounter situations like this, is there anything we can do on our end to work around the issue?  Even if the two issue above are resolved, I anticipate hitting other issues like this in the future.  Might it be possible to setup a call with someone from your development team to discuss the situation?  (FYI, I've opened support case M0109146 requesting the same information).