Forum Discussion

hzheng2000's avatar
hzheng2000
Occasional Contributor
12 years ago

Help on finding MsiExec process

Hi,



I am using TestComplete 8 (8.70.727.7) to automate the test for our installer. The problem I got is that I always got "The Object Doesn't Exist" error (the object is a button) because TestComplete cannot find its parent process - a MsiExec process. But the button and the parent window and the MsiExec process do all exist. And the cause I think is that the installer spawn two more msiexec processes (so bring the total to 3).



I have watched the video for "Creating Reliable Tests for Dynamic Objects NameMapping Explained" and tried some of the methods:

1. Remove the index from the MsiExec processes

2. Check the required children for the MsiExec processes.

3. Using extended find



So far none of them works.



If I right click the MsiExec Process from the Object Browser tab and select "Show Object in Name Mapping Editor", I got ""Unable to show this object in the Name Mapping editor, because it is not mapped or it is mapped incorrectly".



Any help is greatly appreciated

5 Replies

  • TanyaYatskovska's avatar
    TanyaYatskovska
    SmartBear Alumni (Retired)

    Hi Howdy,


     


    Unreliable Name Mapping criteria are used in your project. To help you in creating a reliable test, we need to get your TestComplete project (you can zip it and attach to your post), as well as the object snapshot demonstrating objects and properties of your tested app (see the "Save Object Snapshot Dialog" article for details).


     

  • hzheng2000's avatar
    hzheng2000
    Occasional Contributor
    Hi Tanya,



    Did you see the attachment? Anything else you need? Any thoughts?



    Thanks
  • hzheng2000's avatar
    hzheng2000
    Occasional Contributor
    Anyone has the same issue? Please post any tips/hints. Thanks a lot
  • TanyaYatskovska's avatar
    TanyaYatskovska
    SmartBear Alumni (Retired)

    Hi,


     


    I've looked into your project. According to the Test Log, the Aliases.MSIEXEC object isn't found. Let me explain what is going on. First of all, the Aliases.MSIEXEC object is mapped OK. However, you are using the Required Children feature. Thus, in order to identify the displayed object by TestComplete, your Aliases.MSIEXEC object must contain the wndMsiDialogCloseClass and wndMsiDialogNoCloseClass child objects at a time. But, I don't see the wndMsiDialogNoCloseClass object in the screenshots in your test (maybe I'm wrong on this point). So, if TestComplete cannot find one of these windows, it doesn't recognize the displayed MsiExec process as the mapped object, and the test fails.


     


    Besides that, as the installation process takes several steps, you will see different buttons, text, etc. on each step. In your test, you mapped the Aliases.MSIEXEC.wndMsiDialogCloseClass object by using all buttons that you can see when installing. As a result, TestComplete will never find this window. So, you either should map every single step as an individual window with its own buttons, or do not use buttons which are different for different steps as required children for the installation window.


     


    If you choose to map each step as an individual window, you will need to handle the following steps:


    Step #1:


    Map this window by the text (you can use * to change the variable part in it) - Welcome to the InstallShield Wizard for Honeywell Video Analytics*


    And add the control buttons to this mapped object by their caption (you can use the Visible and Enabled properties as well): Back, Next, Cancel 


     


    Step #2


    Map this window by the text in the caption - License Agreement


    The radio buttons can be mapped by their text as well: I accept the terms in the license agreement


    Map the control buttons as you did on step #1.


     


     


    And so on...