This post describes a simple technique that can enable retrieval of a Link’s onMouseOver color. The only trick is to change the ReplayType setting to Mouse Events while firing an onMouseOver event on the link. Changing the event cause an actual FireEvent action, that you would encounter when you hover the mouse on the link manually.
Below, you will see that the hover event is triggered with the ReplayType set to Mouse Events:
Setting.WebPackage("ReplayType") = 2 Browser("Browser").Link("Link").FireEvent "onMouseOver" MsgBox Browser("Browser").Link("Link").Object.currentStyle.color Setting.WebPackage("ReplayType") = 1
The above snippet can be simplified and be reused using the function below:
Function GetHoverColor(oLink) Setting.WebPackage("ReplayType") = 2 oLink.FireEvent "onMouseOver" GetHoverColor = oLink.Object.currentStyle.color Setting.WebPackage("ReplayType") = 1 End Function RegisterUserFunc "Link", "GetHoverColor", "GetHoverColor"
Now, whenever the link color is to be retrieved, you can simply call the “GetHoverColor” function as you would normally use the Click event:
MsgBox Browser("Browser").Page("Page").Link("Link").GetHoverColor
I hope you find this useful.
{ 34 comments… read them below or add one }
Hi Anshoo,
Today i go through from Your blog in goggle search.
realy you are doing great job.
keep it up
Thank you, Rajiv. I hope you like reading the articles here :)
Simple neat and very nice….
Glad you liked it, Selvam :)
Its really nice. Can you please share few articles related to the below problem.
when I fire a mouseover event, I get a complete structure of a table. how to retrive the data from this. Can you Please share this info. thank u
Hi Rajesh,
I’m not sure if I understand the scenario quite well. The table structure is retrieved when you onMouseOver it? What data are you trying to retrieve from the table? If possible, could you attach or e-mail me the HTML source of the document?
My email is
anshoo.arora [at] relevantcodes.comGreat articles…. Keep it up
Thanks Raj :)
Hi, Please Let me know how to read functions from DLLs we currently have .vbs files and we want to make them as DLLs and use the functions .Can u please let me know how to convert the.VBS files into dlls where we can hide the code from others with out loosing the flexibility to use the functions.
Hi Naveen,
Please see this article. Any public method/property/variable can be accessed once you load the DLL through DOTNetFactory.
To select from the WebList box I am changing the Setting.WebPackage(“ReplayType”)=2 selecting the required item from the list and then on trying to reset the replay type to 1, QTP crash occurs..
Hi Anshoo,
how to do this with FF 3.5?
QTP 10.0 sends an Runtime-Error:
Line (83): “GetHoverColor = Link.Object.currentStyle.color”.
I have installed Patch QTPWEB_00046 – Add Support For Firefox 3.5
by the way, is their an Way to use FF 3.6?
best regarts
Ralf
Ralf,
Not sure if this will work in Firefox as it does not support the concept of
.Object(yet). We’re primarily dealing with COM here, but the underlying technology of Firefox is different. I agree its very similar to COM, but its not exactly that – its XPCOM.Hi Anshoo,
Could you pls tell us, what is the use of below line of code
“Setting.WebPackage(“ReplayType”) = 2/1″
Suresh,
The ReplayType tells QTP the type of events it has to use when working with a Browser application.
ReplayType = 2 = Mouse events
ReplayType = 1 = Browser events
Anshoo,
You are great in scripting. I love to read your columns. Could you please start one topic for QTP Small Automation Tips.
Thanks!
Robin
Hi I am working on automating a website using descriptive programming.I am using object.onmouseover (“link”) to highlight 3 sublinks.I am successful in that till now.But now I am facing problem to click on the sublinks and go over the relevant page as clicked on the sublink.Kindly help me to solve my problem.I appreciate your response
Thanks
Vikramjit
Vikramjit, does Object.Click work? If not, can you try changing the ReplayType setting and clicking on the link?
Hi anshoo
Object.click works and shows sublinks but does not click on the sublinks(does not open the sublink pages)
Thanks
Did changing the ReplayType help?
Hi Anshoo
I am working on automating a website using descriptive programming.I am using object.onmouseover (“link”) to highlight 7sublinks.actually i want click on that sublink through DP. How could i do this .
Please help me
After the sub link menu displays, learn it (it may be learned as a table) or again describe this sub menu object. Then find the required item in that and try to click that object.
Hope it will work
Hi Anshoo I figured that problem out .Thanks
Now I am facing another problem ,, I am getting data from a row in webtable and it is returning “59 782″.Can you tell me how I can separate these numbers like n1=58 and n2=782.I mean I want to convert string coming out of the webtable to numbers .Its really urgent .
Thanks
Vikramjit Singh
Vikramjit,
split the return value using SPLIT { Split(“58 782″, ” ” ) } method with space as a delimiter and then typecast using the CINT { n1 = Cint(arr(0)) and n2 = Cint(arr(1)) }
in my application i need to select the dropdown trough mouse, guys if any body knows send mail to me.
Siva: Why this requirement? It can be done as well using other methods..
Dear Sir,
I am automating a web application and I need to find the color of data which is in a WebTable. When I am using Object Spy, the cell inside the table identifying as a webelement.
I used the below code retreive the colror, but while running it is not identifying the object. I used DP as well.
Set objWebEl= Browser().Page().WebTable().ChildItem(2,2,”WebElement”, 0)
Print objWebEl.Object.currentStyle.color
I tried searching in google, I didn’t get anything useful. Please advice.
Thanks,
Maruti
Maruti, try this:
Print Browser("").WebTable("").Object.rows(0).cells(0).currentStyle.backgroundColor 'or Print Browser("").WebTable("").Object.rows(0).cells(0).currentStyle.colorHi Anshoo,
How to click on a sublink which becomes visible when mouse is put over the parent link.
Like in your portal first fire a onmouseover event for Articles link(this part I am able to do) then select and click on any of the sublink.
Thanks
Ankit
Ankit, the way I generally do this is not visible to the user but the link is clicked. If you want to make it visible, then I guess you can consider changing the replaytype:
Setting.WebPackage("ReplayType") = 2 Browser("title:=Relevant Codes.*").Link("innertext:=Articles").FireEvent "onmouseover" Browser("title:=Relevant Codes.*").Link("innertext:=VBScript", "index:=0").Click Setting.WebPackage("ReplayType") = 1Hi Anshoo,
How to click on a sublink which becomes visible when mouse is put over the parent link.
Like in your website first fire a onmouseover event for Articles link(this part I am able to do) then select and click on any of the sublink.
Thanks
Ankit
Hi,
Anshoo Arora
can u tell me how i can use the data i receive from mouse event to be validated instead of printing it???
example if i want Reporter.ReportEvent to fail if color is black and pass if color returned is orange….
Thanks
Abhilash
Thank you
Anshoo
The problem is now resolved. I learned the Table and is working good.
Great! :)