Forum Discussion

lbyrne's avatar
lbyrne
Contributor
11 years ago

Unable to find object


The following are excerpts from my script.

They all  reference ControlArea.



The first statement works but the second statement I get Unable to find object for gbxNewJob.



When I try to use the name mapping for all objects it did not work.



I only used the Name Mapping to include up to ControlArea.



I noticed in the Object browser, there are 4 Control areas with different indexes. The object ControlArea is different as you progress thru the windows.

Unfortunately, the Name mapping only shows 1 ControlArea in the tree.

The script runs fine for the first reference, but when the 2nd statement executes I get object not defined.





 

Call Aliases.HSP_Meditrac.MDIForm.MdiClient.frmMemberLoadWizard.pnlWizardDisplay.ControlArea.WinFormsObject("gbxUploadFiles").WinFormsObject("groupBox16").WinFormsObject("txtMemberFileName").set_Text("\\DEVPROD3\AutomatedQA\TestCompleteProjectSuites\TestCompleteFiles\Members\MEMBERS.csv")

Call Aliases.HSP_Meditrac.MDIForm.MdiClient.frmMemberLoadWizard.pnlWizardDisplay.ControlArea.WinFormsObject("gbxNewJob").WinFormsObject("gbxNewJobFiles").WinFormsObject("lvwNewJobMembershipFiles").WinFormsObject("lvwNewJobMembershipFiles").CheckItem("\\DEVPROD3\AutomatedQA\TestCompleteProjectSuites\TestCompleteFiles\Members\MEMBERS.csv", True)



The same window is reused, but the objects inside change.

I don't think I can use the name Mapping, but what do I need to change so I don't get undefined for gbxNewJob.



Test script without using name mapping - this did not work either



Sub Test1

  Dim HSP_Meditrac

  Dim mdiMeditrac

  Dim frmMemberLoadWizard

  Dim button

  Dim panel

  Dim groupBox

  Dim dlgMeditrac

  Dim toolkitTextbox

  Set HSP_Meditrac = Sys.Process("HSP.Meditrac")

  Set mdiMeditrac = HSP_Meditrac.WinFormsObject("MDIForm")

  Call mdiMeditrac.StripMainMenu.Click("Tools|Member Load Wizard")

  Set frmMemberLoadWizard = mdiMeditrac.WinFormsObject("MdiClient", "").WinFormsObject("frmMemberLoadWizard")

  Set button = frmMemberLoadWizard.WinFormsObject("gbxBrower").WinFormsObject("pnlWizardButtons").WinFormsObject("btnNext")

  button.ClickButton

  Set panel = frmMemberLoadWizard.WinFormsObject("pnlWizardDisplay")

  Set groupBox = panel.WinFormsObject("ControlArea").WinFormsObject("gbxUploadFiles").WinFormsObject("groupBox16")

  groupBox.WinFormsObject("cmdFindMembershipFile").ClickButton

  Call HSP_Meditrac.Window("#32770", "Open Member Batch File").OpenFile("\\DEVPROD1\Projects\Testing\Task Agent\PRODUCTION\TASKS\10.4.x\MEMBERS\Completed\MEMBERS.csv")

  groupBox.WinFormsObject("cmdUploadFile").ClickButton

  Set dlgMeditrac = HSP_Meditrac.Window("#32770", "Meditrac")

  Call dlgMeditrac.Click(268, 157)

  dlgMeditrac.Window("Button", "OK").ClickButton

  button.ClickButton

  Set groupBox = panel.WinFormsObject("ControlArea").WinFormsObject("gbxNewJob")

  Call groupBox.WinFormsObject("gbxNewJobFiles").WinFormsObject("lvwNewJobMembershipFiles").WinFormsObject("lvwNewJobMembershipFiles").CheckItem("\\DEVPROD1\Projects\Testing\Task Agent\PRODUCTION\TASKS\10.4.x\MEMBERS\Completed\MEMBERS.csv", True)

  button.ClickButton

  HSP_Meditrac.Window("#32770", "Meditrac").Window("Button", "OK").ClickButton

  Set panel = groupBox.WinFormsObject("pnlNewJobCreation").WinFormsObject("pnlNewJobCreationTop")

  Call panel.WinFormsObject("cboNewJobType").ClickItem("Load Membership Only")

  Set toolkitTextbox = panel.WinFormsObject("txtNewJobName")

  Call toolkitTextbox.SetText("dd")

  button.ClickButton

End Sub





 


2 Replies

  • If there is only one ControlArea object in Name Mapping, then is it trying to verify ControlArea by the Index property inside of ControlArea?



    If these Index's are changing, remove the value from the Index property inside ControlArea object and it should accept any Index value when looking for the ControlArea object.

  • Hi Lynn,


     


    Did WinFormsObject("gbxNewJob") appear during the test after executing the first statement?


    Try using the Wait method to get this object and work with it:




    '...


    Set obj = Aliases.HSP_Meditrac.MDIForm.MdiClient.frmMemberLoadWizard.pnlWizardDisplay.ControlArea.WaitWinFormsObject("gbxNewJob", 5000)


    If obj.Exists Then


      obj.WinFormsObject("gbxNewJobFiles").WinFormsObject("lvwNewJobMembershipFiles")._


                WinFormsObject("lvwNewJobMembershipFiles").CheckItem("\\DEVPROD3\AutomatedQA\TestCompleteProjectSuites\TestCompleteFiles\Members\MEMBERS.csv", True)


    End If


    '...