我有一个带有3个保存按钮的表单,其中包含ID' save',' save_new' &安培; ' save_copy&#39 ;.我的服务器代码在保存后执行不同的操作,具体取决于http请求块中是否存在其中一个字段。当我使用浏览器并单击保存时,例如保存参数出现在请求对象中。当我使用CasperJS时,单击请求块中不存在save参数,因此我的代码只执行默认操作,这不是正确的结果。
casper.test.begin('Routine sample test', function suite (test) {
casper.start();
casper.setHttpAuth('<login>', '<pw>');
casper.thenOpen('http://localhost/<sitename>/sample/routine/edit/0', function eval() {
test.assertSelectorHasText("h1", "Routine Sample" );
this.fill('form#routine_form', {
<fill parameters>
}, false);
this.click("#save_new");
});
casper.then(function() {
this.echo(this.getCurrentUrl());
test.assertSelectorHasText("h1", "Routine Sample" );
var sample_id = this.fetchText('[name="sample_id"]');
test.assertEval( function(sample_id) { return sample_id > 0 }, "Sample created" );
});
casper.run(function() {test.done();});
});
最终测试失败,因为服务器没有返回我期望的页面。