RFT从命令行运行时的行为方式不同

时间:2014-12-05 23:11:42

标签: rft

以下代码在从RFT IDE与命令行执行时的行为方式不同。

public void browserError() {
    startBrowser("");
    sleep (1);

    TestObject[] to = find(atDescendant(".class", "Html.HtmlBrowser"));

    System.out.println("Object found: " + to.length);
    logMessage(MessType.INFO, "Object found: " + to.length);

}

如果从RFT IDE运行此代码时只打开一个浏览器,则"到= 1"的长度。但是,当我从命令行"到= 0"。

运行它时

似乎浏览器实例永远不会被注册,因此它永远不会找到它。

更令人费解的是,这段代码可以在不同的机器上运行,所以我知道我的环境中有些东西搞砸了。我只是不知道它是什么。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我遇到的问题是由于我的机器使用的JVM与RFT使用的JVM。在撰写本文时,RFT在Java 1.7上运行,并且它不支持1.8。 RFT使用1.7版来执行所有脚本。但是,当我从命令行运行脚本时,它使用计算机的默认JVM,在我的情况下是版本1.8,因此当我执行find命令时,它无法看到其他浏览器。

感谢IBM India的RFT开发人员之一Prakash指出了这一点。

故事的寓意是这样,当从命令行执行时,您必须明确使用RFT使用的相同JVM,其转换为:

%IBM_RATIONAL_RFT_ECLIPSE_DIR%\ jdk \ bin \ java.exe ...(使用该目录中的java.exe)

java ...(使用机器的默认JVM)

我希望将来帮助某人。