Exception handling using python
I'm trying to use Try block to catch element not found exception and Log a message whenever there is an exception.
But for some reason, when a exception occurs the control does not seem to get into the except block and the log message is not printed. But since i have a try block, even if a error occurs in the if statement the code does not stop getting executed.
try: if page.FindChildByXPath(NoApprovals).VisibleOnScreen == True: Queue[i]=0 Log.Message("found") except Exception as e: Log.Message("Element not found")
I'm not sure this is exactly a Python problem. I see two potential issues with the code.
1) What if FindChildByXPath actually returns an empty stub object? That object does not have the "VisibleOnScreen" property. Errors like that don't raise as "exceptions", those are object recognition errors that need to be handled differently. What you should do is check "Exists", not "VisibleOnScreen", if Exists is true, then you can do any other checks you want.
2) You're doing a search by XPath. VisibleOnScreen is a property that TestComplete applies to distinct objects. Finding an object by XPath does not ALWAYS return an object that TestComplete can interact with as a UI object so it might not even have the VisibleOnScreen property. Again... this would be an object recognition error, but with a different root cause. This would not raise an exception and would not go into the except block.