Forum Discussion

Novari-QA's avatar
Novari-QA
Frequent Contributor
7 years ago
Solved

Call function from string value JavaScript

I was hoping that TestComplete offered a method in which we can dynamically call specific functions based off of a string variable.

 

For example: This is how I would do it in C#. Unfortunately I am not sure if JavaScript has something similar, or even if TestComplete offers it.

 

using System;
using System.Reflection;

/// <summary>
///     Will invoke the method passed in. Then, it will return the generic type used in the function
///     Example: InvokeMethod<int>("methodName", "param");
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="methodName"></param>
/// <param name="stringParam"></param>
/// <returns></returns>
public static T InvokeMethod<T>(string methodName, string stringParam)
{
        return (T)typeof(T).InvokeMember(methodName, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static,
                                              null, null, new Object[] { stringParam });
}

 

 

Thoughts?

  • There are a few ways.

     

    1) Square bracket notation:

    var method = "Message";
    Log[method]("test");

    2) $call:

    Log.$call("Message", "test");

    3) aqObject.CallMethod:

    aqObject.CallMethod(Log, "Message", "test");

3 Replies

  • HKosova's avatar
    HKosova
    SmartBear Alumni (Retired)

    There are a few ways.

     

    1) Square bracket notation:

    var method = "Message";
    Log[method]("test");

    2) $call:

    Log.$call("Message", "test");

    3) aqObject.CallMethod:

    aqObject.CallMethod(Log, "Message", "test");