相关疑难解决方法(0)

PhantomJS:在运行任何其他脚本之前注入脚本

使用PhantomJS,我想注入一些JS,好像<script>在任何其他<script>标签之前有一个额外的标签.这是因为页面上的脚本使用了PhantomJS没有的一些功能,即Function.prototype.bindwindow.webkitRequestAnimationFrame.我有一个JS文件,其中包含两个自定义实现,我希望PhantomJS在页面上运行脚本时使用它们.

困难在于,如果我在page.open之前执行page.injectJs,脚本将被注入到空白页面中,而不会被转移到正在打开的页面.

或者,如果我在page.open之后执行page.injectJs,那么由于JavaScript错误(未定义的函数)已经发生,为时已晚.

我找到了一种似乎有用的方法,但显然是一种黑客行为:

page.onResourceReceived = function() {
    page.injectJs('phantom-hacks.js')
};
Run Code Online (Sandbox Code Playgroud)

这注入了很多次(显然每个资源两次),但这没关系,因为我的脚本是幂等的.但是,我想知道正确的方法:在页面上的任何脚本运行之前只注入一次.

谢谢 :)

phantomjs

23
推荐指数
1
解决办法
7630
查看次数

你如何在CasperJS中禁用css?

我知道如何禁用图像和插件,但似乎没有明显的选项来禁用CasperJS中的CSS.

谁知道它是如何工作的?

casperjs

6
推荐指数
1
解决办法
1805
查看次数

标签 统计

casperjs ×1

phantomjs ×1