2013-08-19 4 views
4

не может обрабатывать просто HTTP-аутентификацию. Вот мой код:CasperJS HTTP Authentication

var x = require('casper').selectXPath; 
var casper = require('casper').create({ 
    verbose: false, 
    logLevel: 'debug' 
}); 
casper.options.viewportSize = {width: 1366, height: 667}; 
casper.start('https://example.com/a/dashboard'); 
casper.setHttpAuth('username', 'password'); 

casper.then(function() { 
    this.test.assertUrlMatch(/^https:\/\/example.com\/a\/dashboard$/); 
}); 

casper.run(function() {this.test.renderResults(true);}); 

И ошибка, которую я вижу в консоли:

casperjs mytest.js 
FAIL Current url matches the provided pattern 
# type: assertUrlMatch 
# subject: false 
# currentUrl: "https://example.com/login" 
# pattern: "/^https:\\/\\/example.com\\/a\\/dashboard$/" 
FAIL 1 tests executed in 2.428s, 0 passed, 1 failed. 

Q: Почему мой текущий Url does't матч с рисунком? Спасибо.

ответ

8

Мне кажется, вам нужно позвонить casper.setHttpAuth(), прежде чем загружать страницу.

Похоже, вы забыли позвонить по номеру casper.exit() в конце casper.run().

var x = require('casper').selectXPath; 
var casper = require('casper').create({ 
    verbose: false, 
    logLevel: 'debug' 
}); 
casper.options.viewportSize = {width: 1366, height: 667}; 

casper.start(); 
casper.setHttpAuth('here_i_type_username', 'here_password'); 

casper.thenOpen('https://mysite.com/a/dashboard', function() { 
    this.test.assertUrlMatch(/^https:\/\/mysite.com\/a\/dashboard$/); 
}); 

casper.run(function() { 
    this.test.renderResults(true); 
    this.exit(); 
}); 
+0

В любом случае ... Что-то не так. CasperError: Casper не запускается, не может выполнить 'setHttpAuth()' /home/test: 358 in checkStarted /home/test: 1390 in setHttpAuth – Satevg

+0

Извините, я отредактировал свой ответ, чтобы исправить эту проблему. – hexid