phantomjs Includejs方法总是无法通过取消操作加载脚本



我正在尝试将某些脚本加载到Phantomjs访问的页面中。我正在使用2.1.1 btw。

我有点在这里敲打我的头,因为我尝试了多种事情,而且它们似乎都以相同的方式失败,这使我认为也许我缺少配置设置或其他东西。p>任何我正在尝试的人:

//I dont actually care about using jquery, just trying loading from different servers
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');

page.includeJs('https://aSiteIControl.com/jquery.min.js');

然后我有一个像这样的onResourceError处理程序:

page.onResourceError = function(resourceError) {
    console.error(resourceError.url + ': ' + resourceError.errorString);
    console.error(JSON.stringify(resourceError))
};

无论我尝试过什么,都可以输出这一点:

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js: Operation canceled
{"errorCode":5,"errorString":"Operation canceled","id":1,"status":null,"statusText":null,"url":"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"}

无论我使用哪种协议或脚本使用什么服务器,这似乎都会发生。另外,这两个示例都可以在浏览器中访问。任何身体都知道我可能做错了什么?

在接受的答案上要清楚,因为没有代码:

只是去看看这个问题:

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

我敢打赌,您可以直接包含本地脚本。请尝试:

    (page.evaluate(function() {
      var script = document.createElement('script');
      script.src = 'http://urlToScript.com';
    }))

这可能是由于加载JS时的超时或对phantom对象的exit()函数的调用引起的,或者如果您尝试打开另一个页面。您可以添加所有代码吗?

基于文档,您可以包括外部JS:

包括指定URL(通常是远程位置)的外部脚本

最新更新