CasperJs在开始之前做了些什么?

时间:2016-04-29 10:17:09

标签: javascript testing casperjs functional-testing

我使用JWT来管理登录状态,因此我需要在运行package com.example.sudiproy.tabproject; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TabHost; public class MainActivity extends AppCompatActivity { TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabHost host = (TabHost) findViewById(R.id.tabHost); host.setup(); //Tab 1 TabHost.TabSpec spec = host.newTabSpec("Tab One"); spec.setContent(R.id.tab1); spec.setIndicator("Android"); host.addTab(spec); //Tab 2 spec = host.newTabSpec("Tab Two"); spec.setContent(R.id.tab2); spec.setIndicator("Iphone"); host.addTab(spec); //Tab 3 spec = host.newTabSpec("Tab Three"); spec.setContent(R.id.tab3); spec.setIndicator("Window"); host.addTab(spec); } } 之前清除localstorage。这怎么可能?

类似的东西:

casper.start

1 个答案:

答案 0 :(得分:1)

您可以在没有任何参数的情况下调用casper.start来初始化内部数据,然后执行您的工作:

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

问题在于,如果您在没有任何网址的情况下致电casper.start,那么当您尝试清除localStorage时,该网页将会显示为:空白。基本上有两种解决方案:

  • 使用PhantomJS的fs模块删除temporary files directory for PhantomJS中的localStorage数据库。
  • 打开目标页面,清除localStorage,然后再次打开目标页面。

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