在 casperjs 中检索元素的选中 属性

Retrieving the checked property of an element in casperjs

目前我正在使用 casper.evaluate 函数来做这样的事情 (使用 CoffeeScript)

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

这似乎工作正常,但我想知道是否有内置的 casper 方法可用于检索 checkbox/radio 元素的已检查 属性?我试过使用 getElementAttribute() 但它不会将 'checked' 检测为属性。它也没有在从 getElementInfo().

检索到的 JSON 对象中列出

不,CasperJS 不提供让您检查元素的功能 属性,但您可以轻松创建自己的功能:

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