Forum Discussion

katepaulk's avatar
katepaulk
Occasional Contributor
14 years ago

MSAA object recognition overrides open VCL object recognition

What's happening: if MSAA is enabled for all objects in order to access data in supplementary items such as PDF files, the MSAA enable overrides the 'native' VCL object recognition, causing objects that are normally recognized as VCL objects and addressed that way in script code to be impossible to find within the automation scripts. Worse, all the debug info compiled into the build becomes inaccessible.



The question: Since the native/VCL/language-specific object recognition is a lot richer than the MSAA recognition, if either is possible, shouldn't the one with the greater amount of information override the other?



For now I can work around the problem by disabling MSAA for the projects I'm working with, but I'm eventually going to need to work with our application-generated PDF files through TestComplete, and I'd like to be able to do this without losing access to the application's internals.
  • Hi Kate,



    To change the priority of technologies used for object identification, go to Tools > Current Project Properties > Open Applications > General and move the NativeMSAA item below NativeDelphiObject. This will make TestComplete apply VCL object identification first and then use MSAA.



    By the way, you can work with PDF files and read their contents programmatically using free third-party .NET and Java libraries such as PDFBox or iText. You can call these libraries from your tests via TestComplete's CLR Bridge and Java Bridge. Some examples can be found in this forum thread. This way, you can avoid interacting with the PDF GUI and using MSAA in your tests.