如何替换 CasperJS 弹出窗口中的导航器对象?

How to replace the navigator object on the popup in CasperJS?

如何替换弹出窗口中的导航器对象?

我可以使用 page.initialized 回调来替换导航器,但它对弹出窗口没有影响。

在 PhantomJS 中,我可以使用这样的东西:

page.onPageCreated = function (newPage) {
  newPage.onInitialized = function () {
    newPage.evaluate(function() {
      window.navigator = {/*some code*/}
    });
  }
};

如何在 CasperJS 上实现?

CasperJS 建立在 PhantomJS 之上。如果它在 PhantomJS 中工作,那么它也将在 CasperJS 中工作。

  1. 您可以直接访问 casper.page 到 运行 与 PhantomJS 中相同的代码或

  2. 您可以使用 popup.created 事件处理程序在 CasperJS 中执行相同的操作:

    casper.on("popup.created", function (newPage) {
      newPage.onInitialized = function () {
        newPage.evaluate(function() {
          window.navigator = {/*some code*/}
        });
      }
    });