如何从CasperJS访问幻像对象?

时间:2017-06-22 02:35:04

标签: javascript testing cookies phantomjs casperjs

我第一次使用 CasperJS ,我想在加载页面之前添加一个cookie。我使用此代码:

casper.test.setUp(function () {
  casper.echo('Cookies enabled?: ' + phantom.cookiesEnabled);
  phantom.addCookie({
    domain: '.localhost',
    name: 'sessionId',
    value: '12345abcd6789efg'
});

问题似乎出现在我的代码中phantom。我收到以下错误:

  

TypeError:undefined不是构造函数

如何定义phantom

1 个答案:

答案 0 :(得分:0)

CasperJS 建立在 PhantomJS 之上,这意味着您的Casper环境实际上是一个带有一些额外功能的PhantomJS环境......

您可以编写的用于检查环境的最基本脚本如下:

console.log('PhantomJS version: ' + phantom.version.major + '.' + phantom.version.minor + '.' + phantom.version.patch);
phantom.exit();

通常,您应该能够使用phantomjscasperjs命令执行此脚本。这将为您提供与phantomjs --version相同的输出。

在您的脚本中,您正在使用CasperJS的测试器模块。但是我们可以从那里访问phantom对象吗?是的,当然!

casper.test.setUp(function () {
  console.log('PhantomJS version: ' + phantom.version.major + '.' + phantom.version.minor + '.' + phantom.version.patch);
});

casper.test.begin('Example', function (test) {
  casper.start('http://example.com');

  casper.then(function () {
    test.assertEquals(this.getTitle(), 'Example Domain');
  });

  casper.run(function () {
    test.done();
  });
});

这次您无法使用phantomjs命令,而必须使用casperjs test。如果您尝试运行此脚本,则应在测试开始之前看到PhantomJS版本...