gpt4 book ai didi

java - ECL 命令中的 Browser.evaluate 不返回对象

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:34 25 4
gpt4 key购买 nike

在我的 Eclipse RCP 应用程序中,我使用 SWT 浏览器来显示 Web 应用程序。我已经能够使用“调用评估”功能与 DOM 元素交互(即插入文本、选择按钮等)来自动测试应用程序。但是,我无法确定如何验证该应用程序是否有效。我试图在 ECL 中返回一个 DOM 对象,以便我可以检查该对象并验证应用程序是否正常工作。

这是我的脚本,我试图将值分配给变量:

with [get-view“编码器 View ”|获取控制浏览器] {
获取对象 |调用评估“document.getElementById('PDX').value;” |让 [val obj -输入] {
格式“%s”$obj |显示警报
}
}

当我执行脚本时,出现错误“不知道如何装箱‘org.eclipse.core.runtime.Status’类型的值”。我不确定为什么“evaluate”方法返回类型“Status”。根据documentation ,它应该返回“Object”。

这可能吗?我错过了什么?

更新

上面的脚本有两个问题:1)我在 JavaScript 中缺少“return”关键字。 2) 我从 DOM 中检索了错误的元素。在我修改脚本以添加返回并选择正确的元素(单选按钮)后,值将正确返回并存储在 ECL 变量中。

以下是更新后的示例:

with [get-view“编码器 View ”|获取控制浏览器] {
获取对象 |调用评估“return document.getElementById('PDXRADIO').checked;” |让 [val obj -输入] {
格式“%s”$obj |显示警报
}
}

最佳答案

评估的结果是“org.eclipse.core.runtime.Status”,它是一个对象。这里没问题。

然而,RCPTT(具体来说是 ECL)将尝试将返回值装箱到 EObject 或其支持的任何装箱基元中。请参阅第 143 行和第 152 行的 box() 方法:

https://github.com/xored/ecl/blob/master/plugins/org.eclipse.ecl.core/src/org/eclipse/ecl/runtime/BoxedValues.java

关于java - ECL 命令中的 Browser.evaluate 不返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com