2016-04-29 2 views
0

Я использую JWT для управления входом в систему, поэтому мне нужно очистить localstorage до запуска casper.start. Как это возможно?CasperJs что-то перед запуском?

Что-то вроде:

casper.then(function() { 
    casper.evaluate(function() { 
    localStorage.clear() 
    }) 
}) 

casper.start('http://localhost:3000', function() { 
    test.assertUrlMatch('http://localhost:3000') 
}) 

ответ

0

Вы можете вызвать casper.start без каких-либо аргументов для инициализации внутренних данных, а затем сделать свой материал:

casper.start() 
    .then(function() { 
     casper.evaluate(function() { 
     localStorage.clear() 
     }) 
    }) 
    .thenOpen('http://localhost:3000', function() { 
     test.assertUrlMatch('http://localhost:3000') 
    }) 

Проблема заключается в том, что если вы звоните casper.start без URL , страница будет продолжаться примерно: пустая, когда вы пытаетесь очистить localStorage. Есть два основных решения:

  • Используйте кнопки fs модуль PhantomJS удалить базу данных LocalStorage, которая находится в temporary files directory for PhantomJS.
  • Откройте целевую страницу, очистите локальное хранилище и снова откройте целевую страницу.

    var url = "..."; 
    casper.start(url, function() { 
        this.evaluate(function() { 
        localStorage.clear() 
        }) 
    }) 
    .thenOpen(url, function() { 
        test.assertUrlMatch('http://localhost:3000') 
    })