How to handle if not finding on objects is not an error
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to handle if not finding on objects is not an error
I have a teststep for saving a file. On windows you know how to save as works. It can directly save or a pop-up window asks you do you want to overwrite with same name. Briefly, a file can be directly saved or it can overwrite. Both option is applicable for me.
So i don't want to take en error when save as window is appeared on the screen. Below code takes error like "Cannot obtain the window with the windowclass...." How can i fix the problem? Thank you
var saveAsWindow= Saveasobject
if (saveAsWindow.Exists)
{object.clickbutton();
Log.Message("overwritten button is selected.")
}
else
Log.message("overwritten window is not appeared. Because it is a new file.")
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
A list of possible cause of the problem can be found here: https://support.smartbear.com/testcomplete/docs/testing-with/running/handling-errors/object-not-foun...
Are we able to identify an object within the pop up?
Best,
Matt
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The error is not important to me because it is not an error for me. Because of TestComplete cannot find the related variable it takes error but i wonder how can i handle to don't take an error. I also tried TRY-CATCH but it still idenfied being as an error.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I wonder if it is failing because the pop up is not in focus.
If we add a setfocus method to the parent level of the tested object, that may help force TestComplete to identify the parent level, and therefore the child object.
Example scripts can be found here: https://support.smartbear.com/testcomplete/docs/reference/test-objects/members/window-and-process/se...
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, is there anyting like that if a pop-up opens then click OK button, else just write a informative log and don't do anything. Because of popup object is set, TestComplete see it being as error.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would also see what settings on the current project properties to handle unexpected windows. Check within current project properties, and then playback.
https://support.smartbear.com/testcomplete/docs/working-with/managing-projects/properties/playback.h...
https://support.smartbear.com/testcomplete/docs/testing-with/running/handling-errors/unexpected-wind...
Maybe we are deleting the window before we can interact with it.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@caganYou may look at this.
I came to similar problem when I didn't know if window will appear but still I must search for it.
My solution was to use FindEx method to search the object because it will return Exists property equals false if it will not found it.
No error will be raised and you can set the timeout so method will be quite fast.
https://support.smartbear.com/testcomplete/docs/reference/test-objects/members/common-for-all/findex...
var object = findEx()
if (object.exists == false) Log.Message('Windows is not here, so no futher operqations needed');
else {
Log.Message('Found the window,');
CloseAdditionalPopup();
}
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank for suggestions, everyone!
@cagan did you have a chance to look into the latest advice?
Sonya Mihaljova
Community and Education Specialist
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thank you for the offer.
I tried FindEx() medhot like that. But still it takes error like the object does not exists. Just in case Save As popup object is found FindEx method does it works otherwise it takes object does not exists error.
There should be a way to manage cases if different UI screen appears.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well,
I've tried it by myself because I was sure that error should not be raised and it works fine without erros:
Check if your "if" statement ask for property "exists" == false, cuz it's the only property created when object does't exists.
