如何使用 CasperJS 检索复选框的值
How to retrieve value of a checkbox with CasperJS
我在使用 casperjs 获取网页中复选框的值 true/false 时遇到问题!我确实阅读了有关此主题的其他几个主题,但没有解决我的问题。
看我的网页代码:
这是我到目前为止拥有的 CasperJS 代码,它找到了复选框所需的 ID:
...
var numTimes = 20,
count = -1;
casper.repeat(numTimes, function() {
var name = this.evaluate(function(count) {
var sel = '[id*="connectedToNeType[' + count + ']"]';
var element = document.querySelector(sel).id;
return element;
}, ++count);
var check_id = name.replace(/_TD|_TR/, '');
var checked = this.evaluate(function(check_id) {
var element = document.getElementById(check_id).checked;
return element;
});
this.echo(' checkbox: ' + checked);
});
我正在使用重复,因为我有多个 id,我需要检查复选框的值!
变量 name 将从类似的行中获取几个 id,如下所示:
在示例页面中,当 运行 上面的 CasperJS:
时,我得到以下打印输出
-> connectedToNeType[0]}
checkbox: null
-> connectedToNeType[1]}
checkbox: null
-> connectedToNeType[2]}
checkbox: null
-> connectedToNeType[3]}
checkbox: null
-> connectedToNeType[4]}
checkbox: null
-> connectedToNeType[5]}
checkbox: null
您忘记将 check_id
传递给第二个 evaluate()
调用。此外,您的复选框以您尚未添加的“_CB”结尾。
看来你想要:
var name = this.evaluate(function(count) {
var sel = '[id*="connectedToNeType[' + count + ']"]';
var element = document.querySelector(sel).id;
return element;
}, ++count);
var check_id = name.replace(/_TD|_TR/, '') + '_CB';
var checked = this.evaluate(function(check_id) {
var element = document.getElementById(check_id).checked;
return element;
}, check_id);
this.echo(' checkbox: ' + checked);
我在使用 casperjs 获取网页中复选框的值 true/false 时遇到问题!我确实阅读了有关此主题的其他几个主题,但没有解决我的问题。
看我的网页代码:
这是我到目前为止拥有的 CasperJS 代码,它找到了复选框所需的 ID:
...
var numTimes = 20,
count = -1;
casper.repeat(numTimes, function() {
var name = this.evaluate(function(count) {
var sel = '[id*="connectedToNeType[' + count + ']"]';
var element = document.querySelector(sel).id;
return element;
}, ++count);
var check_id = name.replace(/_TD|_TR/, '');
var checked = this.evaluate(function(check_id) {
var element = document.getElementById(check_id).checked;
return element;
});
this.echo(' checkbox: ' + checked);
});
我正在使用重复,因为我有多个 id,我需要检查复选框的值!
变量 name 将从类似的行中获取几个 id,如下所示:
在示例页面中,当 运行 上面的 CasperJS:
时,我得到以下打印输出-> connectedToNeType[0]}
checkbox: null
-> connectedToNeType[1]}
checkbox: null
-> connectedToNeType[2]}
checkbox: null
-> connectedToNeType[3]}
checkbox: null
-> connectedToNeType[4]}
checkbox: null
-> connectedToNeType[5]}
checkbox: null
您忘记将 check_id
传递给第二个 evaluate()
调用。此外,您的复选框以您尚未添加的“_CB”结尾。
看来你想要:
var name = this.evaluate(function(count) {
var sel = '[id*="connectedToNeType[' + count + ']"]';
var element = document.querySelector(sel).id;
return element;
}, ++count);
var check_id = name.replace(/_TD|_TR/, '') + '_CB';
var checked = this.evaluate(function(check_id) {
var element = document.getElementById(check_id).checked;
return element;
}, check_id);
this.echo(' checkbox: ' + checked);