目前我正在使用casper.evaluate函数执行此类操作 (使用CoffeeScript)
bool = casper.evaluate ->
document.querySelector('button selector').checked
这似乎工作正常,但我想知道是否有一个内置的casper方法可以用来检索复选框/无线电元素的checked属性?我已尝试使用getElementAttribute()
,但它无法检测到“检查过”。作为一个属性。它也没有列在从getElementInfo()
检索到的JSON对象中。
答案 0 :(得分:5)
不,CasperJS没有提供一个为您提供元素的checked属性的函数,但您可以轻松创建自己的属性:
casper.isChecked = function(selector){
var result = this.evaluate(function(selector){
var el = document.querySelector(selector);
return el ? el.checked : null;
}, selector);
if (result === null) {
throw new CasperError("Selector not found");
}
return result;
};
getElementAttribute()
和getElementInfo()
不提供此原因的原因是checked
是HTML元素的属性,而不是属性。属性通常是静态的,即使属性发生更改也不会更改。