如何在 casperJS 中设置 cookie

How to set a cookie in casperJS

本文关键字:设置 cookie casperJS      更新时间:2023-09-26

我有一个非常简单的casperjs脚本来访问几个页面并截取那里的一些元素的屏幕截图。问题是,在首次加载后,这些页面会显示一些我绝对不需要的覆盖窗口。显示覆盖后,它会设置一个 cookie(首选项:{"dv":"1"}),以防止此覆盖在下次页面加载时显示。

所以我的计划是在加载页面之前通过 casperJS 设置这个烹饪。但是由于某种原因它不起作用,我什至不确定我是否正确设置了它。以下是我到目前为止尝试过的几个选项:

var casper = require('casper').create();
casper.start( url, function() {
document.cookie="prefs={'"dv'":'"1'"}";
this.captureSelector(filename + '.png', 'div#main.contentFrame');
});
casper.run();

或与

this.page.setCookies("prefs={'"dv'":'"1'"}")

甚至

phantom.addCookie({
  'name': 'prefs',
  'value': {"dv":"1"},
  'domain': '.somesite.com'
});

正确的方法是什么?

可能,该页面尚未收到 cookie。

您可以尝试在事件侦听器中使用相同的代码load.started

此外,添加一个evaluate脚本来检查页面加载的每个阶段是否存在 Cookie。这可能会有所帮助。