在phantomjs 1.8中伪造flash插件信息

BoC*_*ode 3 flash plugins phantomjs

我是PhantomJs的新手.我正在使用1.8.1版本.我已经看过这里解决这个问题,因为我有类似的要求.

我正在做这样的事情:

page.onInitialized = function () {
    page.evaluate(function () {
        (function () {
            window.navigator.plugins = {
                'length': 1, 
                'Shockwave Flash': {
                    'description':'fakeflash'
                }
            };
        })();
    });
};
Run Code Online (Sandbox Code Playgroud)

当我做console.log时(window.navigator.plugins ['Shockwave Flash'].描述)

我得到了未定义的结果.

谁能告诉我我做错了什么?

Ari*_*yat 8

替换整个navigator对象(您不能只修改一些属性).

var page = require('webpage').create();

page.onConsoleMessage = function (msg) {
    console.log(msg);
};

page.onInitialized = function () {
    page.evaluate(function () {
        window.navigator = {
            plugins: {
                length: 1,
                'Shockwave Flash': {
                    description: 'fakeflash'
                }
            }
        };
    });
};

page.content = '<html><body>Hello</body></html>';
page.evaluate(function () {
    console.log(window.navigator.plugins['Shockwave Flash'].description);
});

phantom.exit();
Run Code Online (Sandbox Code Playgroud)