In what situations QTP will not recognize the Objects?

Answer Posted / deven mehta

1. Check the loaded add-ins:

It’s pretty basic, but be sure you have the correct add-ins
selected. If QTP is only recognizing your objects as
standard WinObject this may be a sign that you need to use
an add-in. Sometimes QTP’s ‘Display Add-in’ Manager on
start-up option, under Tools\Options\General may not be
selected. This setting may cause you to start QTP on a
machine and mistakenly assume that all of the correct add-
ins have been chosen. Double-check by opening your script
and selecting File\Settings under Properties ‘Associated
add-ins:’ verifying that all the needed add-ins are listed.
Also make sure QTP is started before the application under
test. QTP will sometimes not recognize a web application if
the browser was opened before QTP.



2. HP’s Knowledge base:

Research the issue. If your add-ins are fine, the next step
is to search the HP’s Knowledge base. Again, this may seem
obvious, but a surprising number of people fail to do this.
There’s nothing worse than spending hours on a script only
to discover later that there is a patch (for example see
patch that resolves some QTP 11 object issues) available or
a posted solution that will solve the problem. I'm
sometimes hailed as an automation genius by fixing
something that an engineer may have been struggling with
for days, based on information I found in the KB. Often,
even after I tell the engineer how I solved the issue, they
still don’t check the KB the next time they have a problem.
Do me a favor -- don't be that guy (or gal)! Check the KB.
(If nothing is found in the KB, another great resource to
check is SQAForums.

3. Using .Object:

Look at all the available object’s operations (both
the “identification properties” and “native properties”
methods). You'll be surprised what you'll find lurking
around in an object’s properties that may help to automate
it. Using .Object try as many operations as possible--even
ones that may not seem remotely relevant to the action you
want to perform. For example: I was having a problem
recognizing text on an application’s custom .NET grid.
After spying on the object and trying several different
methods that sounded promising, I ended up trying an odd
one, called GetViewStyleInfo, and surprisingly it worked!









4. Try GetVisibleText:

Sometimes QTP does not recognize text in an object using
the GetROProperty("text") method. As a last resort, try
using the GetVisibleText, GetTextLocation and Type methods.
These methods really helped me automate some old
proprietary controls. Using a combination of QTP’s TYPE
method and GetTextLocation, I created a very reliable rich
edit box object function. For example:



?
123456789101112131415161718192021222324252627282930313233343
536373839404142434445464748495051525354555657585960616263646
5666768697071 RichEditBoxICW "0","ENTER","=>","T","From
date:" wait 1
RichEditBoxICW "0","ENTER","Through","T^20","Through
date:" wait 1 RichEditBoxICW "0","ENTER","No=>","N","Do
you want to queue this
activity?" '*********************************** '*
RICHEDITBOX '********************************** '***********
************* '* ICW '* @Documentation Used to perform
valid actions on RichEdit
objects. '************************ Function RichEditBoxICW
(index,action,lineText,valueToEnter,comment) On Error
Resume Next '***************************************** '
SET OR PATH BASED ON
ENV '***************************************** set
strICWPath = Browser("CF").Page("CF").Frame
("WorkSpace").SwfObject("IEController") strParse = strings
("PARSE",valueToEnter,"LEFT","","") 'this would return
False string does not contain ^ Select Case UCASE
(action) Case "ENTER" intXY = getTextXY(lineText)
arrXY = Split(intXY,"^") strICWPath.WinObject
("regexpwndclass:=RichEdit20A").Click arrXY(0),arrXY
(1) If strParse = "False" Then
Reporter.Filter = rfEnableAll strICWPath.WinObject
("regexpwndclass:=RichEdit20A").Type micRight
strICWPath.WinObject("regexpwndclass:=RichEdit20A").Type
valueToEnter strICWPath.WinObject
("regexpwndclass:=RichEdit20A").Type micReturn
strReportMsg = "ENTERED ->" & valueToEnter ELSE
strEnterValue = geString
("PARSE",strValueToEnter,"LEFT","","")'Get Value to
Enter strRightCount = geString
("PARSE",strValueToEnter,"RIGHT","","")'Get # of right keys
to press before entering text for nTabs = 1 to
strRightCount strICWPath.WinObject
("regexpwndclass:=RichEdit20A").Type micRight
next strICWPath.WinObject
("regexpwndclass:=RichEdit20A").Type strEnterValue
strICWPath.WinObject("regexpwndclass:=RichEdit20A").Type
micReturn strReportMsg
= "ENTERED ->" & strEnterValue end select End
Function '------------------------------------------------
--------- '@Function Name: getTextXY '@Documentation
Return X and Y coordinates of text '@Parameters: The
text to find '@Created By: Joe Colantonio '@Return
Values: X & Y coord separated by a
^ '@Example: intXY = getTextXY(strLineText) '--
-----------------------------------------------------------
Function getTextXY(strTextToFindXYFor) set strICWPath =
Browser("CF").Page("CF").Frame("WorkSpace").SwfObject
("IEController") l = -1 t = -1 r = -1 b = -1 rc
= strICWPath.WinObject
("regexpwndclass:=RichEdit20A").GetTextLocation
(strTextToFindXYFor, l, t, r, b) getTextXY = r & "^" &
t End function


5. Developers are your friend:

The application's developers can help you. Ask your
developers to expose a method or add a property that will
make automation easier. But before you ask -- make sure
you've exhausted all the above suggestions. Developers can
be a tough bunch, and you really don’t want to annoy them
with things you could have resolved on your own. I work
with some awesome programmers, and as long as I'm able to
clearly explain to them what I need and why, they never
hesitate to help.

6. Make sure there is not a patch that will help.

Sometimes there are known issues with object recognition
that only a QTP patch will resolve. Also new patches
sometime include support for newer version of AUT
like .NET or Browsers.

Is This Answer Correct ?    0 Yes 2 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

How do you send email with attachment from outlook using qtp ?

559


What is accessibility check point?

655


What is keyword view?

560


How may types of defects identify application or your currently working application?pls give me answer..

1508


How the exception handling can be done using quicktest professional?

538






How to define array in qtp?

571


What are the flaws in water fall model and how to overcome it?

557


Explain Descriptive Programming Types with Examples?

921


What is recovery scenario manager? When you go for recovery scenario manager? Tell me one scenario were your used recovery scenario in your project?

568


how to acess a test in RSA?

1665


Explain the new feature of UFT regarding the export of test results?

575


How would you directly trigger javascript in a test?

1470


What are the two types of repositories available, explain them?

592


How many add-ins comes by default with quicktest professional?

552


What is test object model in quicktest professional (qtp)?

544