我想点击一个复选框,只要它已被选中。
以下代码似乎无效:
if(this.test.assert(this.evaluate(function () {return document.getElementById('myID').checked;})))
{
this.click('#myID');
}
正确的语法是什么?
答案 0 :(得分:3)
test.assert*
函数用于声明某个条件。删除它是因为您想要分支执行。否则你的代码是正确的。
test.assertExists("#myID");
// this function will not be executed if #myID wasn't there
var id = 'myID';
if(this.evaluate(function (pageCtxId) {return document.getElementById(pageCtxId).checked;}, id))
{
this.click('#'+id);
}
答案 1 :(得分:1)
您可能希望这样做:
casper.waitFor(function checked() {
return this.evaluate(function() {
return document.getElementById('myID').checked === true;
});
}, function then() {
this.click('#myID');
});