Why is the SilkTest Exists() method returning FALSE for a dialog even though the dialog exists on the screen?
A possible cause of this is because of the way you have tagged the dialog in your window declarations. Check your window declarations, specifically the tag used to identify the dialog.
In the code below you can see that the tag includes ../ - this is not valid. In this instance the Exists() method will return FALSE even though the dialog is displayed on the screen. You cannot use ../ at the start of the tag
[-] window DialogBox Message [ ] tag "../Confirmation - Message"
The ../ syntax tells the agent to use the parent of the child object in the tag. For example:
[-] window MainWin TestApplication [-] multitag "Test Application" [ ] "$C:\build32\bin\testapp.exe" [-] window DialogBox xCheckBox [ ] tag "Check Box" [ ] parent TestApplication [ ] PushButton SetLabel [ ] tag "Set Label/.." [-] main() [ ] // Will get the children of the DialogBox [ ] listprint(xCheckBox.SetLabel.getChildren())
.. syntax is used when the parent has the same label or caption, but do not have identical contents.
Correct ~/ (or ~ActiveApp)
In the code below you can see that the tag includes ~/ - this is perfectly valid. Exists() will return TRUE.
[-] window DialogBox Message [ ] tag "~/Confirmation - Message"