Protractor 实习生是否支持angularjs选择器和量角器?
我正试图决定在SauceLabs的e2e测试中使用intern还是Digrator,我发现Digrator提供的这些“by”非常有用(by.model、by.binding、by.repeater),我想知道这样的定位策略是否也可以在intern中使用。Digrator使用WebDriverJS库,而不是WD.js库,因此,它不可能直接兼容,但通过编写与Digrator提供的相同类型的辅助函数,Digrator如何工作的想法在Intern中也同样可行: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',
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
。我已经用其他信息更新了上面的答案。