在单个脚本中声明两个或更多casper

时间:2014-09-17 06:22:12

标签: javascript login session-cookies casperjs

我想要做的是声明两个casper,两个将登录到某个站点,一个将充当管理员,另一个将充当典型用户。我想在一个脚本中完成它。

是否可以在单个脚本中声明两个或更多casper? 就像这个:

var casper1 = require("casper").create({
    verbose: true,  timeout: null
});

var casper2 = require("casper").create({
    verbose: true,  timeout: null
});

1 个答案:

答案 0 :(得分:5)

这在很大程度上取决于网站如何处理会话。如果这是通过每个请求中的唯一ID作为请求参数完成的,那么这是可能的。但是一旦使用cookie,这是不可能的。

CasperJS就像一个浏览器。您可以有多个选项卡(casper个实例),但会话由浏览器(PhantomJS)处理。即使您有多个casper个实例,它们也会使用相同的Cookie,因此您无法同时以用户身份和管理员身份登录。这是因为PhantomJS处理cookie,即使你有多个casper实例,下面只有一个phantomjs进程。

如果管理界面位于另一个域上,则此多个casper实例应该有效。经验法则是,如果您可以在具有多个标签的单个浏览器窗口中登录,则可以使用多个casper个实例进行登录。

因此,如果它们位于同一个域并且使用了cookie,则需要使用不同的脚本执行此操作。

您可能感兴趣的其他问题: