有没有人知道使用API迭代和操作与查询匹配的所有元素的简单方法?
我最简单的用例是这样的 - 不是真正的代码,但希望你知道我在寻找什么。
test.query('textarea').each(function(v, i){
this.type(v.id, 'test' + i);
});
我可以使用任意JS exec,jQuery等来做这件事。我只是觉得Dalek可能做的事情我错过了
谢谢!
修改
原来我的JS exec备份不起作用......
test
.execute(function(){
var textareaIds = [];
(function($){
$('textarea').each(function(){
textareaIds.push($(this).attr('id'));
});
})(window.jQuery);
this.data('textareaIds', textareaIds);
});
但可能由于代码排队然后执行的性质,你不能在之后的for循环中使用该数组。我错过了什么吗?
答案 0 :(得分:1)
我们将在即将推出的DalekJS版本中改进API会话,因此迭代DOM元素&在客户端执行的JavaScript之间的交互&作为测试的一部分在服务器上执行的JavaScript将会非常扼要。
关于你没有工作的执行例子。您不能仅在节点代码中使用通过this.data
传递的数据,而是需要将其添加到链中。由于这是一个非常实验性的功能,我们并没有真正实现一个可以在以后处理数据的API。
您可以做的一件事就是滥用log.message
这样的方法:
.execute(// your code)
.log.message(function () {
// get the data
var myArray = test.data('textareaIds');
// do something with it
require('fs').writeFileSync('myFile.txt', JSON.stringify(myArray));
})
我认为这不是您想要/需要的,但是重用该数据进行进一步的测试和断言是不可能的。但是我们正在努力。