在我的Eclipse RCP应用程序中,我利用SWT浏览器显示一个Web应用程序。我已经能够使用“调用评估”功能与DOM元素(例如,插入文本,选择按钮等)进行交互,从而自动化应用程序的测试。但是,我无法确定如何验证该应用程序正常工作。我正在尝试在ECL中返回DOM对象,以便可以检查该对象并验证应用程序是否正常工作。
这是我要在其中将值分配给变量的脚本:
with [get-view "Encoder View" | get-control Browser] {
get-object | invoke evaluate "document.getElementById('PDX').value;" | let [val obj -input] {
format "%s" $obj | show-alert
}
}
执行脚本时,出现错误“不知道如何对'org.eclipse.core.runtime.Status类型的值进行装箱'”。我不确定为什么“求值”方法返回类型“状态”。根据{{3}},它应该返回“对象”。
这可能吗?我想念什么?
更新
我的脚本存在2个问题:1)我在JavaScript中缺少“ return”关键字。 2)我正在从DOM中检索不正确的元素。在修改脚本以添加return并选择正确的元素(单选按钮)后,将返回值并将它们正确存储在ECL变量中。
这是更新后的示例:
with [get-view "Encoder View" | get-control Browser] {
get-object | invoke evaluate "return document.getElementById('PDXRADIO').checked;" | let [val obj -input] {
format "%s" $obj | show-alert
}
}
答案 0 :(得分:0)
评估的结果是一个“ org.eclipse.core.runtime.Status”,它是一个对象。没问题。
但是,RCTPT(具体来说是ECL)将尝试将返回的值装箱到EObject或它支持的任何装箱原语中。请参阅第143和152行的box()方法: