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