tet*_*ato 2 javascript phantomjs casperjs
目前我正在使用casper.evaluate函数执行类似的操作(使用CoffeeScript)
bool = casper.evaluate ->
document.querySelector('button selector').checked
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但我想知道是否有一个内置的casper方法,我可以用来检索复选框/无线电元素的checked属性?我尝试过使用getElementAttribute()但它不会检测到'已检查'作为属性.它也没有列在从中检索的JSON对象中getElementInfo().
不,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;
};
Run Code Online (Sandbox Code Playgroud)
原因getElementAttribute()并且getElementInfo()不提供这是因为checkedHTML元素的属性而不是属性.属性通常是静态的,即使属性发生更改也不会更改.