casperjs在设置ID
后无法找到IDcasper.then(function () {
screenLog();
var id = String("_newid_");
var arrow = this.evaluate(function () {
var arrows = document.querySelectorAll('span.select2-selection__arrow');
arrows[1].innerHTML = "aa";
arrows[1].id = id;
return arrows[1].innerHTML;
});
screenLog();
this.click("#"+id);
screenLog();});
然后错误代码: CasperError:无法在不存在的选择器上调度mousedown事件:# newid
答案 0 :(得分:0)
Caspers评估方法在单独的环境(DOM环境)中运行,因此在浏览器环境中无法访问casper环境中定义的变量。但是,您可以通过添加额外的参数来评估函数,将变量传递给浏览器环境。
因此,对于您的情况,id未定义,但您可以像这样正确传递
var id = String("_newid_");
var arrow = this.evaluate(function (id) {
var arrows = document.querySelectorAll('span.select2-selection__arrow');
arrows[1].innerHTML = "aa";
arrows[1].id = id;
return arrows[1].innerHTML;
}, id);