1

我正在使用机器人框架和 selenium2library 测试基于 extjs 的 Web 应用程序,但我无法找到表格组件包含的某些元素。selenium2library 有一个关键字 Execute javascript,所以我想知道如何执行 javascript,例如如何执行 js 代码:

var a=document.getElementById('ext-comp-1155').getElementsByTagName("button");
a[0].click();

有没有人有成功的基于 extjs 的网页自动化测试经验?任何帮助,将不胜感激。

4

2 回答 2

1

你应该能够像这样执行javascript

  Execute Javascript var a=document.getElementById('ext-comp-1155').getElementsByTagName("button"); a[0].click(); 

即事件虽然javascript中有多个语句,但只要分号到位,您就可以在单个参数中给出它们。

可以像这样使它更具可读性:

 ${button clicker}=  document.getElementById('ext-comp-1155').getElementsByTagName("button")[0].click() 
 Execute Javascript  ${button clicker} 
于 2012-03-08T18:26:06.973 回答
0

如果您不限于 Selenium,您可能需要查看RIATest

5.0 版完全支持 ExtJS 测试。ExtJS UI 小部件是 RIATest 中的一等公民。这意味着与其他 HTML 测试工具不同,您不需要编写操作 HTML DOM 元素的测试。RIATest 中的测试根据 ExtJS UI 小部件运行。

使用 ExtJS 小部件的 RIATest 脚本示例:

以下点击带有标签“下一页”的 ExtJS 按钮:

ExtButton("Next Page")=>click();

以下内容将一行从一个 ExtJS 树拖放到另一棵树:

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

这会折叠 ExtJS 框的标题:

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(以上所有示例代码均来自在 ExtJS 示例应用程序上运行的真实测试脚本)。

RIATest 还知道何时自动等待 ExtJS AJAX 完成,因此如果您的 UI 进行动态内容下载,测试将自动神奇地等待,直到从服务器接收到数据。

(免责声明:我是 RIATest 团队成员)。

于 2012-09-12T13:54:58.703 回答