2016-04-29 94 views
0

我使用JWT來管理登錄狀態,所以我需要在運行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沒有任何網址,當您嘗試清除localStorage時,頁面將保留大約:空白。基本上有兩種解決方案:

  • 使用fs模塊PhantomJS的刪除localStorage的數據庫是在temporary files directory for PhantomJS
  • 打開目標頁面,清除localStorage並再次打開目標頁面。

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