Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Protractor 实习生是否支持angularjs选择器和量角器?_Protractor_Intern - Fatal编程技术网

Protractor 实习生是否支持angularjs选择器和量角器?

Protractor 实习生是否支持angularjs选择器和量角器?,protractor,intern,Protractor,Intern,我正试图决定在SauceLabs的e2e测试中使用intern还是Digrator,我发现Digrator提供的这些“by”非常有用(by.model、by.binding、by.repeater),我想知道这样的定位策略是否也可以在intern中使用。Digrator使用WebDriverJS库,而不是WD.js库,因此,它不可能直接兼容,但通过编写与Digrator提供的相同类型的辅助函数,Digrator如何工作的想法在Intern中也同样可行: define(['intern!tdd',

我正试图决定在SauceLabs的e2e测试中使用intern还是Digrator,我发现Digrator提供的这些“by”非常有用(by.model、by.binding、by.repeater),我想知道这样的定位策略是否也可以在intern中使用。

Digrator使用WebDriverJS库,而不是WD.js库,因此,它不可能直接兼容,但通过编写与Digrator提供的相同类型的辅助函数,Digrator如何工作的想法在Intern中也同样可行:

define(['intern!tdd','tests/support/locators'],函数(tdd,locators){
tdd.suite('suite',function(){
测试('test',函数(){
var remote=this.remote;
远程。获取('http://example.com')
.then(locators.by.model('foo'))
.then(函数(模型){})
//…等等
;
});
});
其中,在上述情况下,
locators.by.model
是一种类似以下的方法:

功能模型(modelId){
返回此值。执行(函数(){
returndocument.querySelectorAll(['ng-model='+modelId+']');
});
}
编辑:您还可以直接使用量角器的
clientsidescripts
模块:

define(['intern!tdd','intern/dojo/node!dragrator/lib/clientsidescripts'],函数(tdd,脚本){
tdd.suite('suite',function(){
测试('test',函数(){
var remote=this.remote;
远程。获取('http://example.com')
.execute(scripts.findByModel,['foo'])
.then(函数(模型){})
//…等等
;
});
});

既然如此,有什么理由使用intern而不是Digrator吗?因为intern提供了Digrator所不具备的功能:AMD测试模块、异步使用承诺、不同的测试接口、不同的报告器、更好的组件集成等等。事实证明,Digrator公开了用于从DOM中提取元素的客户端脚本作为一个单独的模块,您可以直接将这些函数传递给
execute
。我已经用其他信息更新了上面的答案。