Creating a Custom Command

From GXtest Wiki
Jump to: navigation, search
Spanish.gif
English.gif
Japan.gif

Custom Commands give GXtest the flexibility to create new commands expressing action or validations to be performed in JavaScript language.

Contents

Creating a Custom Command

Open this menu to create Custom Command.

AccesoCustomCommand.jpg

The following screen will open where you can enter the JavaScript code to be run when the command is run:

CodigoCustomCommand.jpg

You need to choose a name, which will be used to reference it, and a description of the command.

Then you must choose the kind of command:

  • Action
  • Event
  • Validation

Then you need to choose for which versions of GeneXus the command is valid.

In the JS text box, a JavaScript template is displayed that must be respected in order to implement the command.

If the JavaScript function is implemented it is possible to consult values from (v8, v9, v10, undefined) and currentLanguage (java, .NET, undefined) if it is necessary that different actions are necessary depending on these parameters. Además se les puede pasar un parámetro en ParamJS.

You will recieve OK from the result variable if everything went well or an error message if it failed.


In the following example you can see how to use the information provided by GXtest in the parameters, taking different actions according with the generated language (java or dot net).


if (currentLanguage=="Java") {


} else if (currentLanguage=="net") {


} else {


}


You can do something similar with the GeneXus version.


You can see more examples here.

Using a Custom Command

Once you have created a Custom Command it is ready to be used by GXtest the same way as any other native command, allowing you to add it and edit it manually.

The only limiting factor is the fact that you can't record it automatically using the toolbar.

Useful suggestions

In order to creat the JS function easier, you can use any tool like Web Developer from Google Chrome, or Firebug in Firefox, to look the elements which you can use to do different actions.

For example, if we want to do a command to access a menu developed with JavaScript, with these tools we can see how the navigation is performed, even if it is done with an event or if it is generated with a dynamic link.

After that you have to see how this Javascript works. If the menu is allocated on memory, perhaps it is better to interact with javascript directly with that objects. If it is not, you should interact with the 'document' object, or with 'this', to ask for an specific object on the html.


Output

When we need to capture a value from the page (a string) using a custom command, we can use the built-in variable _resultCC. Inside the custom command code we return the desired value, which will be saved into this variable, and after the execution of the CC we can use the variable and its value in other GXtest commands.

This is only valid when the custom command is defined as an action or event command (is not available in validations).

Common Problems

Thr custom command works in Internet Explorer but it doesn't in FireFox. The error message says that the "document" or "alert" variable are not defined for example
In order to make it work in Firefox, you would need to add "window" before those objects.
"window.documment.writeln"...)"

More examples ...

At Custom Command's examples