以下代码在从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"。
运行它时似乎浏览器实例永远不会被注册,因此它永远不会找到它。
更令人费解的是,这段代码可以在不同的机器上运行,所以我知道我的环境中有些东西搞砸了。我只是不知道它是什么。
提前致谢。
答案 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)
我希望将来帮助某人。