casperjs 设置id后找不到id
casperjs can't find the id after set id
casperjs 设置id后找不到id
casper.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
Casper 评估方法在单独的环境(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);
casperjs 设置id后找不到id
casper.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
Casper 评估方法在单独的环境(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);