toom
toom

Reputation: 13347

Casper JS : Strange error: status=fail (HTTP 200)

I'm trying to load the following webpage with casperjs/phantomjs http://m.10bet.com/#leage_panel#10096.

Therefore I wrote the following simple casper script:

var casper = require('casper').create({
    verbose: true,
    logLevel: "debug"
});

if( casper.cli.args.length != 1 )
    casper.echo('No URL as arguments given. Exiting.\n').exit();

var id = casper.cli.args[0]
casper.start( 'http://m.10bet.com/#leage_panel#' + id, function() {
    casper.waitForResource("http://m.10bet.com/pagemethods.aspx/UpdateEvents", function() {
        this.echo(casper.getPageContent())
    }, function(){}, function(){}, 10000 );
});

casper.run(function() {
    this.echo('Done.').exit();
});

So, I'm waiting for the last resource to be loaded which is in this case "http://m.10bet.com/pagemethods.aspx/UpdateEvents". I checked this with the chrome developer tools. Subsequently I want to output the rendered html on the console.

However, but instead of the html I get a in my opinion very strange error:

solaris:js_loaders Tom$ casperjs 10bet_loader.js 10096 
2014-01-03 17:31:36.545 phantomjs[8733:130b] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
[info] [phantom] Starting...
[info] [phantom] Running suite: 2 steps
[debug] [phantom] opening url: http://m.10bet.com/#leage_panel#10096, HTTP GET
[debug] [phantom] Navigation requested: url=http://m.10bet.com/#leage_panel#10096, type=Other, lock=true, isMainFrame=true
[debug] [phantom] url changed to "http://m.10bet.com/#leage_panel#10096"
[debug] [phantom] Navigation requested: url=http://m.10bet.com/#leage_panel#10096, type=Reload, lock=true, isMainFrame=true
[warning] [phantom] Loading resource failed with status=fail (HTTP 200): http://m.10bet.com/#leage_panel#10096
[debug] [phantom] Successfully injected Casper client-side utilities
[debug] [phantom] url changed to "http://m.10bet.com/#leage_panel#10096"
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step 2/2 http://m.10bet.com/#leage_panel#10096 (HTTP 200)
[info] [phantom] Step 2/2: done in 761ms.
[info] [phantom] Step 3/3 http://m.10bet.com/#leage_panel#10096 (HTTP 200)
[info] [phantom] Step 3/3: done in 771ms.
[warning] [phantom] Casper.waitFor() timeout
[info] [phantom] Done 3 steps in 790ms
Done.
solaris:js_loaders Tom$ 

As you can see from the log the error "Loading resource failed with status=fail (HTTP 200): http://m.10bet.com/#leage_panel#10096" gives a http 200 ok but failed. Eventually the webpage is not loaded or printed on the console. So I'm wondering what is going wrong here?

Upvotes: 1

Views: 3727

Answers (2)

Christopher Ellis
Christopher Ellis

Reputation: 1116

Usage:

casperjs stackoverflow.js --idEvent=10096

Code:

var casper = require('casper').create ({
  waitTimeout: 15000,
  stepTimeout: 15000,
  verbose: true,
  viewportSize: {
    width: 1024,
    height: 768
  },
  pageSettings: {
    "userAgent": 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.10 (KHTML, like Gecko) Chrome/23.0.1262.0 Safari/537.10',
    "loadImages": false,
    "loadPlugins": false,
    "webSecurityEnabled": false,
    "ignoreSslErrors": true
  },
  onWaitTimeout: function() {
    casper.echo('Wait TimeOut Occured');
  },
  onStepTimeout: function() {
    casper.echo('Step TimeOut Occured');
  }
});

//vars
var idEvent = casper.cli.get('idEvent');

// start
casper.start();

// check args
casper.then(function() {
  if (!idEvent) {
    //usage check
    this.echo('Invalid usage: Must supply Event Id');
    casper.exit();
  }
});

casper.thenOpen('http://m.10bet.com/#leage_panel#' + idEvent, function() {
  casper.waitForResource('http://m.10bet.com/pagemethods.aspx/UpdateEvents', function() {
  //casper.waitForSelector('#league_block', function() {
  }, function then() {    //selector found
    this.echo(casper.getPageContent());
    casper.exit();
  }, function timeout() { //selector not found
    this.echo("Timeout On Selector...Exiting").exit();
  });
});

// executes
casper.run();

Upvotes: 1

Chris Hawkes
Chris Hawkes

Reputation: 12430

Does your arguments work in other scripts? I'm curious because the documentation shows that arguments are referenced in this way.

casper.echo(casper.cli.has(0));

I'm wondering if maybe this is the issue?

Upvotes: 0

Related Questions