2

我有一个非常简单的 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'
});

什么是正确的方法?

4

1 回答 1

1

可能页面没有收到cookie。

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

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

于 2013-09-16T13:09:17.780 回答