使用CasperJS使用更新的数据进行链式选择

时间:2014-09-15 11:26:00

标签: javascript phantomjs html-select casperjs

有两个ID选择。第二个选择框数据根据您在第一个选择框中选择的内容进行链接。换句话说,如果你选择"宝马"在第二个选择框中应该出现316,318,320 ......你明白了。

第一个选择有监听器

('#brand').change(function(){
    call ajax and fill the data for the second select box
}

最后我要做的是获得所有品牌的所有型号选项: - )

到目前为止我得到的是:

var casper = require('casper').create({
    loadImages:false,
    verbose: true,
    logLevel: 'debug',
    clientScripts: ["includes/jquery.min.js"]
});

casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36');

casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
});

casper.on( 'page.error', function (msg, trace) {
    this.echo( 'Error: ' + msg, 'ERROR' );
});

casper.start('http://www.mywebsite.kitchen/');

casper.then(function(){
    this.evaluate(function(valueOptionSelect){
        $('#brand').val(6).trigger('change');
    },optionFirstSelect);

    this.waitFor(function check() {
        return this.evaluate(function(casper) {
            var len = $('#model1 option').length;
            console.log('length of options is ->', len);
            return $('#model1 option').length > 1;
        });
    }, function then() {

       //well i still haven't reach that point

    }, function timeOut(){
        casper.echo(arguments)
    });
});

casper.run(function() {
    //finish execution script
    this.exit();
});

现在我获得的控制台日志是:

//编辑 - 长度为1而不是0

  

选项长度为1

当我在浏览器控制台中执行$('#brand').val(6).trigger('change'); $('#model1 option').length时,我得到了正确的结果。

0 个答案:

没有答案