Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ExtJS和CasperJS开发的测试组合框_Javascript_Extjs_Css Selectors_Casperjs_Browser Testing - Fatal编程技术网

Javascript 使用ExtJS和CasperJS开发的测试组合框

Javascript 使用ExtJS和CasperJS开发的测试组合框,javascript,extjs,css-selectors,casperjs,browser-testing,Javascript,Extjs,Css Selectors,Casperjs,Browser Testing,我已经使用ExtJS4.1开发了我的应用程序。我有一个使用Ajax调用填充的组合框。填充完comobox后,我需要按名称查找一个项目,然后首先查找该项目的select事件 问题在于ExtJS呈现组合框的方式。我不知道如何以正确的方式选择项目。CombBox实际上不是一个元素,而是一个文本输入,在文档树的底部有一个分离的下拉列表 我不想硬编码id,因为ExtJS随机生成id 这就是生成的HTML的外观 我建议,您可以在不进行测试的情况下检查ExtJs combobox的示例 var x = re

我已经使用ExtJS4.1开发了我的应用程序。我有一个使用Ajax调用填充的组合框。填充完comobox后,我需要按名称查找一个项目,然后首先查找该项目的select事件

问题在于ExtJS呈现组合框的方式。我不知道如何以正确的方式选择项目。CombBox实际上不是一个
元素,而是一个
文本输入
,在文档树的底部有一个分离的下拉列表

我不想硬编码id,因为ExtJS随机生成id

这就是生成的HTML的外观


我建议,您可以在不进行测试的情况下检查ExtJs combobox的示例

var x = require("casper").selectXPath;

casper.thenClick(".x-form-trigger.x-form-arrow-trigger")
    .wait(100)
    .thenClick(x("//li[contains(@class,'x-boundlist-item') and contains(text(),'Alaska')]"))
    .wait(100, function(){
        this.capture("screenshot.png");
    });
在单击之前,您可能还需要将鼠标移动到位。使用

casper.then(function(){
    this.mouse.move(selector)
});

由于组合框是形式的,因此可以在组合框定义中使用“name”属性,并使用以下选项选择它:

Ext.getCmp("idOfThePanel").down('form').getForm().findField('name');
另一个选项是使用“引用”属性。在这种情况下,我不确定哪种方法是正确的选择框:

Ext.getCmp("idOfThePanel").down('form').getForm().lookupReference('reference');


这就是我包含extjs的方式
casperjs测试——include=ext-all.js testFile.js
。在包含ext引用之后,我可以说
var component=ext.getCmp('component-id')
。但是
组件
仍然是
未定义的
Ext.getCmp("idOfThePanel").lookupReference('reference');