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

chi*_*nko 2 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
});
Run Code Online (Sandbox Code Playgroud)

Art*_* B. 5

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

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

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

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

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