在casperjs中检索元素的checked属性

时间:2015-06-16 17:55:00

标签: javascript phantomjs casperjs

目前我正在使用casper.evaluate函数执行此类操作 (使用CoffeeScript)

bool = casper.evaluate ->
        document.querySelector('button selector').checked

这似乎工作正常,但我想知道是否有一个内置的casper方法可以用来检索复选框/无线电元素的checked属性?我已尝试使用getElementAttribute(),但它无法检测到“检查过”。作为一个属性。它也没有列在从getElementInfo()检索到的JSON对象中。

1 个答案:

答案 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元素的属性,而不是属性。属性通常是静态的,即使属性发生更改也不会更改。