【问题标题】:After reload page RFT cant find TestObjects重新加载页面 RFT 后找不到 TestObjects
【发布时间】:2013-04-16 13:38:42
【问题描述】:

我尝试获取具有识别属性 Html.LI 的所有元素并单击每个测试对象。

            RootTestObject rto = getRootTestObject();
    TestObject[] objects = rto.find(atDescendant(".class", "Html.LI"));
    for (int i = 0; i <  objects.length; i++) {
        GuiTestObject gui1 = new GuiTestObject ();
         gui1 = (GuiTestObject)  objects[i];
         gui1.hasFocus();
             gui1.click();

        }
}

当我得到 objects[0] 并单击它时,页面会重新加载。当我尝试单击对象 [1] 时,出现错误消息 CRFCP0050E: 找不到对象的屏幕点。]

你知道如何解决吗?

【问题讨论】:

    标签: java rft


    【解决方案1】:

    在页面重新加载时单击对象[0] 后,先前调用 find() 返回的 testobject 引用将不再有效。
    在单击对象[1] 之前,请尝试运行另一个 find() 并查看您是否能够以这种方式执行单击。

    【讨论】:

    • developerWorks article 中,建议在使用对象之前始终调用find(),并且永远不要依赖存储的对象。
    【解决方案2】:

    objects.length 包含它找到的所有对象。 objects.length = 3

    记住数组是以[0]为底的, [0, 1, 2]

    所以,如果您将循环修改为: for (int i = 0; i

    您的代码可能有效。

    问候

    阿方索·弗洛雷斯

    【讨论】:

    • 因为支票是i &lt; object.length,所以你不需要减去1——i永远不会达到object.length的值。如果支票是i &lt;= object.length,您的建议可能是正确的。但由于问题不是 ArrayIndexOutOfBoundsException,因此数组索引不太可能出现问题。
    猜你喜欢
    • 1970-01-01
    • 2020-03-01
    • 2016-08-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2022-12-22
    • 2018-07-04
    相关资源
    最近更新 更多