我想要做的是声明两个casper,两个将登录到某个站点,一个将充当管理员,另一个将充当典型用户。我想在一个脚本中完成它。
是否可以在单个脚本中声明两个或更多casper? 就像这个:
var casper1 = require("casper").create({
verbose: true, timeout: null
});
var casper2 = require("casper").create({
verbose: true, timeout: null
});
答案 0 :(得分:5)
这在很大程度上取决于网站如何处理会话。如果这是通过每个请求中的唯一ID作为请求参数完成的,那么这是可能的。但是一旦使用cookie,这是不可能的。
CasperJS就像一个浏览器。您可以有多个选项卡(casper
个实例),但会话由浏览器(PhantomJS)处理。即使您有多个casper
个实例,它们也会使用相同的Cookie,因此您无法同时以用户身份和管理员身份登录。这是因为PhantomJS处理cookie,即使你有多个casper
实例,下面只有一个phantomjs进程。
如果管理界面位于另一个域上,则此多个casper
实例应该有效。经验法则是,如果您可以在具有多个标签的单个浏览器窗口中登录,则可以使用多个casper
个实例进行登录。
因此,如果它们位于同一个域并且使用了cookie,则需要使用不同的脚本执行此操作。
您可能感兴趣的其他问题: