Forum Discussion
Hi,
While Robert's reply is the recommended way to go if for some reason you *really* need to use image search, note that as per https://support.smartbear.com/testcomplete/docs/reference/project-objects/items/stores/regions/findregion.html, .FindRegion() returns found rectangle if the search succeeds.
So your code should be like this:
Set Button = Regions.GetPicture("output_preview") Set currentWindow = Sys.Desktop.ActiveWindow.Picture(0, 0, -1, -1) Set oSearchResult = Regions.FindRegion(Button ,currentWindow ) If oSearchResult Is Nothing Then Log.Warning "Not found" Else ' Do a .Click() here using coordinates calculated using currentWindow and oSearchResult objects End If
Thanks Alex,
But how do i calculate the coordinates using currentWindow and oSearchResult objects ?
Can you help me out here.
Ant the reason I'm using image recognition to click on this button is because 'Object Spy' is unable to identify this button. I don't get a red rectangle over this button( also some other buttons which are on the status bar of my desktop application).
I don't want to use coordinates to click on the button, which is why I chose to do it using image recognition.
Please let me know if I can go ahead with Roberts suggestion in this case.
I have attached the screenshot of the status bar having the red rectangle of 'Object Spy'.
Thanks in advance.
- HKosova8 years agoSmartBear Alumni (Retired)
TestCytel wrote:
... 'Object Spy' is unable to identify this button. I don't get a red rectangle over this button( also some other buttons which are on the status bar of my desktop application).
Try enabling MSAA or Text Recognition for the object whose elements you want to identify:
- In the Object Spy, find the WndClass of the object marked by the red frame in your image.
- Add this value to the list in the project properties > Open Applications > MSAA and select the check box next to it. Save the project.
- Try spying on the button again.
- If this did not help, add the WndClass value to the project properties > Open Applications > Text Recognition and try again.
- AlexKaras8 years agoChampion Level 3
Hi,
> Please let me know if I can go ahead with Roberts suggestion in this case.
Robert's suggestion is the recommended way because it is more fast and more reliable.
Assuming that you are testing desktop application, you should go through the https://support.smartbear.com/testcomplete/docs/app-testing/desktop/index.html help section and check that all necessary steps are done for your application. If, according to https://support.smartbear.com/testcomplete/docs/app-testing/desktop/index.html and information from your developers, you think that some control should be recognized by TestComplete's Object Browser while it is not, you may contact Support via the https://support.smartbear.com/message/?prod=TestComplete form and ask them.
> But how do i calculate the coordinates using currentWindow and oSearchResult objects ?
Exact code will depend on whether coordinates of the oSearchResult object are relative to the screen or to the parent currentWindow object.
Assuming screen-related coordinates, the code might be just like this:
Sys.Desktop.Click(oSearchResult.Left + 3, oSearchResult.Top + 3) // 3 is some empirical shift to make click() to happen over the control
Assuming object-related coordinates, the code might be:
Sys.Desktop.Click(currentWindow.ScreenLeft + oSearchResult.Left + 3, currentWindow.ScreenTop + oSearchResult.Top + 3) // 3 is some empirical shift to make click() to happen
- marinb8 years agoContributor
If you can't find the object with the spy, sometimes it helps to record a script and see how the script is recorded when you click the button. Maybe it records as Object.Button.Click or something. Then you can find the parent object and what the script added to click the button. Or find the parent object and click on the button location.
Related Content
- 6 months agomengbinhao
- 12 months agoMW_Didata
- 2 years agorkadali
Recent Discussions
- 49 minutes agonandini_thota
- 24 hours agoGane195