Call for your favorite Handler!

We all created handlers at some point in time in our scripts ( What is a Handler?).

What is your favorite handler? The most reliable and most used. What is your story behind the use of it?

Share Today With Our Eggplant Community! Together We Learn!

I hope that you find this helpful. It takes two parameters: the coordinates for a row header (as a rectangle) and a column header (as a rectangle).

function CalculateSearchAreaForIntersectionOfRowAndColumn myRowRectangle, myColumnRectangle

set tmpSearchArea_L = left(myColumnRectangle) - .5 * width(myColumnRectangle)
set tmpSearchArea_T = top(myRowRectangle) - .5 * height(myRowRectangle)
set tmpSearchArea_R = right(myColumnRectangle) + .5 * width(myColumnRectangle)
set tmpSearchArea_B = bottom(myRowRectangle) + .5 * height(myRowRectangle)
set tmpSearchArea to (tmpSearchArea_L,tmpSearchArea_T,tmpSearchArea_R,tmpSearchArea_B)
Log "The search area is"&&tmpSearchArea
	Return tmpSearchArea

end CalculateSearchAreaForIntersectionOfRowAndColumn
1 Like

The handler documents the step and stops the script if the step fails.

To handle ClickImage with imageName, params:{}	
	set  params.imageName to imageName
	If params.waitTime is empty then
		set params.waitTime to 20
	End if
	If ImageFound(params) then
		Click FoundImageLocation()
		LogSuccess("Button " & imageName & " was pressed!")
		LogError("Button " & imageName & " was not pressed!")
		Exit all
	End if	
End ClickImage
1 Like

Another handler returning a search rectangle. It uses different images to search for the required area.

To handle FindSearchArea with imageTL, imageBR,\
			imageTop:"", imageBottom:"",\
			imageLeft:"", imageRight:"", offset:[0,0,0,0],searchRectangle:[]
		put ImageRectangle(imageName:imageTL, waitFor:20, searchRectangle:searchRectangle) into rectImageTopLeft
		put ImageRectangle(imageName:imageBR, waitFor:20, searchRectangle:searchRectangle) into rectImageBottomRight
		put topLeft of rectImageTopLeft into topLeftCoord
		put bottomRight of rectImageBottomRight into bottomRightCoord
		put topLeftCoord &&& bottomRightCoord into searchRect
		If imageTop is not "" then
			put ImageRectangle(imageName:imageTop, waitFor:20, searchRectangle:searchRectangle) into rectImageTop
			put bottom of rectImageTop into item 2 of searchRect
		End if
		If imageBottom is not "" then 
			put ImageRectangle(imageName:imageBottom, waitFor:20, searchRectangle:searchRectangle) into rectImageBottom
			put top of rectImageBottom into item 4 of searchRect
		End if
		If imageLeft is not "" then 
			put ImageRectangle(imageName:imageLeft, waitFor:20, searchRectangle:searchRectangle) into rectImageLeft
			put right of rectImageLeft into item 1 of searchRect
		End if
		If imageRight is not "" then 
			put ImageRectangle(imageName:imageRight, waitFor:20, searchRectangle:searchRectangle) into rectImageRight
			put left of rectImageRight into item 3 of searchRect
		End if
		put searchRect + offset into returnRect
		put True into rectFound
	Catch theException
		put the RemoteScreenRectangle into returnRect
		put False into rectFound
		Log "Problem finding the search rectangle. Exception: " & theException
	End try
	Return (returnRect, rectFound)
End FindSearchArea	
1 Like