2015-10-22 22 views
11

Ich kann wirklich kein Beispiel für die Verwendung von X-Ray und. Driver (Phantom()) für die Authentifizierung .. Ich habe durch die Dokumentation für Röntgen- und Röntgenphantom können noch keine Hilfe finden.X-ray-Phantom-Authentifizierung, nicht in der Lage, effektiv einzuloggen

+1

Es sieht nicht wie Röntgen wurde dafür entworfen. Ich sehe keine Möglichkeit, etwas in die Seite einzugeben. Es scheint, dass Sie die Methode 'request()' verwenden können, die ich im Code gefunden habe. –

Antwort

4
/** 
* Module Dependencies 
*/ 

var Crawler = require('x-ray-crawler'); 
var cheerio = require('cheerio'); 
var join = require('path').join; 
var assert = require('assert'); 
var phantom = require('../'); 
var fs = require('fs'); 

/** 
* Tests 
*/ 

describe('phantom driver', function() { 

    it('should have sensible defaults', function(done) { 
    var crawler = Crawler() 
     .driver(phantom()) 

    crawler('http://google.com', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var title = $('title').text(); 
     assert.equal('Google', title); 
     done(); 
    }) 
    }); 

    it('should work with client-side pages', function(done) { 
    var crawler = Crawler() 
     .driver(phantom()); 

    crawler('https://exchange.coinbase.com/trade', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var price = $('.market-num').text(); 
     assert.equal(false, isNaN(+price)); 
     done(); 
    }) 
    }) 

    it('should support custom functions', function(done) { 
    var crawler = Crawler() 
     .driver(phantom(runner)); 

    crawler('http://mat.io', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var title = $('title').text(); 
     assert.equal('Lapwing Labs', title); 
     done(); 
    }) 

    function runner(ctx, nightmare) { 
     return nightmare 
     .goto(ctx.url) 
     .click('.Header-logo-item+ .Header-list-item a') 
     .wait() 
    } 
    }) 
}) 

/** 
* Read 
*/ 

function get(path) { 
    return require(join(__dirname, 'fixtures', path)); 
} 

Siehe unten GitHub Links, wenn es hilft.

  1. https://github.com/lapwinglabs/x-ray-phantom
  2. https://github.com/lapwinglabs/x-ray/issues/22