Set Object Reference in UFT with or without the “E

2019-06-08 06:53发布

问题:

Recently I have been assigned a project wherein the object references are set using the "Execute" Statements as shown below:

Execute "Set objButton = XamRibbonWindowAddin(""XamWindow_DashBoard"").WpfButton(""Save"")"

Whereas, my approach for setting the object references has always been like this(without the "Execute" Statement):

Set objButton = XamRibbonWindowAddin("XamWindow_DashBoard").WpfButton("Save")

I have been using the latter method as it allows me to make use of Intellisense in UFT which is quite an advantage sometimes.

Is there any reason I need to switch to the 1st approach or Should I ask How is one approach better than the other? I could not get much from the internet.

回答1:

As long as the Executed code is pre-defined and doesn't contain any parts that are determined dynamically by the test I don't see any benefit of using Execute.

An example of dynamic code may be something like this contrived example which determines what the variable is called according to some previously computed value theType.

Execute "Set obj" & theType & " = XamRibbonWindowAddin(""XamWindow_DashBoard"").Wpf" & theType & "(""Save"")"

Then if theType is Button it will define the variable objButton and if it's Edit it will define objEdit.

As I said this is a contrived example, I've never ran across anything that would require you to use Execute in UFT.

Since you're entering into an existing code base, consistency has it's values. If possible I would ask one of your more experienced co-workers what motivated them to use this construct to better form an opinion.