Ask a Question

Use the return value of a Python function in another function

anapao
Occasional Contributor

Use the return value of a Python function in another function

Hi !

I defined a method to  get the coordinates of an object. These coordinates I want to use in another function to drag and drop the object. I just do not now how to get the return value of a function. 

The reason why I want to use the coordinates in another function is because the object is nor recognized in my first function anymore (dont know why, if you have an idea, that is also welcomed)

Here the function to obtain the coordinates:

def getElectricGridDragDropCoordinates():

ImageRepository.AssetLibraryMenus.Menu_ExternalEnergyNetworks.Click()

MySourceObject = ImageRepository.Assets.ElectricGridConnection
ImageRepository.Assets.ElectricGridConnection.Click()
SourceX = Sys.Desktop.MouseX
SourceY = Sys.Desktop.MouseY

MyDestinationObject = Aliases.SimpsonGui.wndQt5QWindowIcon..widget_placeholderEquipment.ComponentTreeView.qt_scrollarea_viewport
DestinationX = MyDestinationObject.Left
DestinationY = MyDestinationObject.Top

return SourceX, SourceY, DestinationX, DestinationY;


and here the function where I want to use these coordinates:

 

def dragDrop():

getElectricGridDragDropCoordinates()

Delay(200)

t = tuple(#resultof getElectricGridDragDropCorrdinates )
SX = t[0]
SY = t[1]
DX = t[2]
DY = t[3]


MySourceObject = ImageRepository.Assets.ElectricGridConnection
MySourceObject.Drag(SX,SY,DX + 1, DY + 1)


Thanks a lot in advance :D!

6 REPLIES 6
Marsha_R
Community Hero

create variables in TestComplete for anything you want to share and then use those in the second function


Marsha_R
[Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
anapao
Occasional Contributor

Thanks @Marsha_R I already had tried it and did not work. I think, the problem is not at getting the return value, but at recognizing the object again (which I want to manipulate with the return value of the function) .

Do you have any idea why an object cannot be recognized once I has been cklicked once? 

Thanks a lot again!

Coordinates are not the best way to look for an object since they can change between runs of the test or between machines or even between reloads of the same browser.  Try using the object name instead.  It's a more persistent value.


Marsha_R
[Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
anapao
Occasional Contributor

The drag function always requires the X,Y co-ordinates for the start position and the end position :/. But thank you anyways for your kind help!

What happens when you try to use the object again in the same function?  The exact error message and/or a screenshot would be helpful.


Marsha_R
[Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
anapao
Occasional Contributor

Hi @Marsha_R thanks again for your help! here the screenshot of Test Log . I double checked the  search area and is the right one

Here the relevant part of the code:

ImageRepository.AssetLibraryMenus.Menu_ExternalEnergyNetworks.Click()

MySourceObject = ImageRepository.Assets.ElectricGridConnection
ImageRepository.Assets.ElectricGridConnection.Click()
X = Sys.Desktop.MouseX
Y = Sys.Desktop.MouseY

MyDestinationObject = Aliases.SimpsonGui.ComponentTreeView.qt_scrollarea_viewport
MyDestinationObject.Click()
toX = Sys.Desktop.MouseX
toY = Sys.Desktop.MouseY

Log.Message(X)
Log.Message(Y)
Log.Message(toX)
Log.Message(toY)

MySourceObject.Drag(X,Y,toX,toY)

cancel
Showing results for 
Search instead for 
Did you mean: