Forum Discussion

rmanning's avatar
rmanning
Contributor
14 years ago

TestExecute and MSAA (Flash) Plugin

Hi,



I have done a few searches regarding this, so I am aware that the MSAA settings are stored within a project, but I cannot for the life of me get TestExecute to find Flash-Based mapped objects.  



TestComplete runs the script without any issues, but TestExecute does not.  It cannot find anything mapped behind a flash object.  Is there something I am missing?  I have checked the extensions behind both programs and they are the same.  



The two programs are on separate machines, so would there be an issue in the way the flash objects appear or are named on another machine?  I thought this was the point to mapping the objects in the first place.  I tried to remove any really "distinguishing" items from the objects but they are still undetected in TestExecute...



Any help would be greatly appreciated.

3 Replies


  • Hi Ryan,





    I can suggest you posting the entire object tree of the process you are working with from TestComplete and TestExecute and then comparing these trees. You can do this using the LogAppStructure script routine below. I hope this information will help you in your investigation. If it does not, please send us both result sets via the Contact Support form.





    Sub Test

      Set proc = Sys.Process("iexplore")

      Call LogAppStructure(proc)

    End Sub





    Sub LogAppStructure(obj)

      Dim count, i, Str

      

      ReDim params(8) 

      params(0) = "WndClass"

      params(1) = "WndCaption"

      params(2) = "Index"

      params(3) = "Visible"

      params(4) = "Exists"

      params(5) = "tagName"

      params(6) = "ObjectType"

      params(7) = "ObjectIdentifier"

      params(8) = "Caption"

      

      On Error Resume Next

        Str = ""

        For i = 0 To UBound(params)

          Err.Clear

          If IsSupported(obj, params(i)) Then

            Str = Str & params(i) & " = " & VarToStr(Eval("obj." & params(i))) & VbCrLf

          End If

          If Err.Number <> 0 Then

            Str = Str & params(i) & " = Error: " & Err.Description

          End If

        Next

      On Error GoTo 0

      

      Call Log.AppendFolder(obj.Name, Str)

      For i = 0 To obj.ChildCount - 1

        Call LogAppStructure(obj.Child(i))

      Next

      Log.PopLogFolder

    End Sub
  • I looked at the difference in the processes between the two machines while running the very same script, and it turns out they are both rendering one of the objects (in a flash container) with different names.  How do I get the same script to work across these systems when encountering something like this?  Why would the machines render the object with a different name?  I tried mapping the object again without using this name, but it still cannot find it on the second machine.

  • Hi Ryan,





    What are the different names of the same object on the two computers?

    Please specify the value of the FullName property of the objects.