Right Click on RCP List View
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Right Click on RCP List View
Hello All,
We have a desktop application built on top of RCP which uses SWT to draw its UI elements. We have noticed that the ClickItemR function of TestComplete which simulates a right-click does not work properly on the SWT Table UI element. It's inconsistent, it works sometimes and fails most of the time.
If there is any suggestion on how to properly simulate a right-click functionality on SWT Table element.
- Labels:
-
Desktop Testing
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @naveenchandravp -
What types of messages are you getting in regard to the failures? It could be a timing issue if it is inconsistent - sometimes a delay or increasing the time in between steps can help to mitigate issues. But ill have a better idea to help if you can let me know what the failures are.
Thanks,
Emma
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@ebarbera Thank You for the quick response and apologies for not providing complete details.
Below is the error that I am getting
"Popup menu was not found for the "Aliases.DataExplorer.Shell2.Composite2.Composite.Composite.Composite.CTabFolder.ContributedPartRenderer_1.CTabFolder.StatisticsComposite.ListView" object. 0:50:36 Normal 11.22"
The Popup menu was not found because ClickItemR was not successful.
I also tried using the ClickR function and provided proper x, y coordinates. Here too the app is inconsistent. It sometimes opens the context menu and sometimes doesnt.
I added a delay of 2000 ms in between each step. No luck
The version of TestComplete I am using: 14.93.312.7 (running on 64 bit)
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Now when I was checking what's new on TestComplete 15.10 page, I see a comment about improved "click-related" actions. I will upgrade my installation and try. Meanwhile, if you have any suggestions I would be grateful.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Little disappointed as TestComplete 15.10 also fails to fix this problem. Same behavior.
Can you please let me know if there is something that I need to do? Or you need more details around this topic.
Thanks,
Naveen
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For anyone who is struggling with the same problem, I wrote a python script (which is just a workaround and not the desired way of opening the context menu on lists) which seems to be working for me.
def open_context_menu():
arr = Sys.Process("<ProcessName>").FindAllChildren("WndClass", "SysListView32", 50)
if len(arr) > 0:
for i in range (0, len(arr)):
if True == arr[i].Focused:
arr[i].ClickR()
Log.Message("Context Menu Opened Successfully!")
break
else:
Log.Error("No List Objects were found.")
@ebarbera I would still like to hear from you if there is any better approach for this issue.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @naveenchandravp -
Apologies on the delayed response - we do have a document that outlines specific suggestions when working with listview items, maybe this will be of more help (https://support.smartbear.com/testcomplete/docs/app-objects/specific-tasks/standard/list-view/addres...). It is a bit tricky to diagnose the right click issue without having seen it I apologize but if I find out any additional information I will let you know. I will also pass along this information to product.
Let me know if you have further questions.
Emma
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@ebarbera Thanks for the response!
The page talks about the ClickItem function, which is working perfectly fine for me. My concern is w.r.t ClickItemR and ClickR functions which simulate right-click.
I understand it's difficult to suggest anything without actually being able to reproduce the problem. Will it help if I create a sample application and provide reproducable steps?
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @naveenchandravp -
Yes - this would be very helpful.
The reason I suggested that document is because sometimes if one approach is not working with automation it is best to use a workaround. But if you are trying to validate the functionality of the right click specifically I understand your concern.
Thanks,
Emma
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The issue could be that there is more than one SysListView32 control. It could be on the same Form or maybe in memory and not visible. This could explain why you are seeing inconsistent results and why looping an array of list view controls seems to work.
A couple of things you could try.
1. Narrow you search by specifying parameters that are unique to the control. For example, make sure it is visible. Or if it has a unique index you could specify that.
Listview = Sys.Process("<ProcessName>").FindChild(new Array("WndClass","Visible", "Index") , new Array("SysListView32", true, 1), 50)
2. Get a parent object closer to the desired SystemListView32 object.
Parent = Sys.Process("<ProcessName>").FindChild(new Array("WndClass","Visible") , new Array("#32770", true), 50)
ListView = Parent.FindChild(new Array("WndClass","Visible", "Index") , new Array("SysListView32", true, 1), 50)
I hope this helps.
