使用PhantomJS从文件系统打开URL
在中,我可以了解如何使用http打开页面 如何使用网页模块从文件系统打开url 我试图省略使用PhantomJS从文件系统打开URL,phantomjs,Phantomjs,在中,我可以了解如何使用http打开页面 如何使用网页模块从文件系统打开url 我试图省略http://,并在url中添加。/some_dir/foo.html,但似乎失败了 我试过这个: var page = require('webpage').create(); var fs = require('fs'); fs.changeWorkingDirectory('../foo/bar'); page.open('file://index.html', function(status)
http://
,并在url中添加。/some_dir/foo.html
,但似乎失败了
我试过这个:
var page = require('webpage').create();
var fs = require('fs');
fs.changeWorkingDirectory('../foo/bar');
page.open('file://index.html', function(status)
{
console.log(status);
//console.log(document.title);
phantom.exit();
});
哪个输出“失败”
我得到了测试绝对路径的建议,尝试以下方法:
var page = require('webpage').create();
var fs = require('fs');
page.open('file:///absolute/path/to/index.html', function(status)
{
console.log(page.title);
console.log($('body').length);
phantom.exit();
});
(无论是否调用changeWorkingDirectory,但结果相同)
我得到了一个页面标题,但phantomjs报告说,$
是未定义的
,jQuery包含在我的html文件中(太大,无法在这里发布)。它包括如下内容:
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
尝试运行函数也会产生如下错误
找不到变量:函数名称
您正在打开的页面/文件中是否已嵌入jquery?如果没有,则需要在页面对象上使用injectJs或includeJs,然后才能使用
$
操作符
如果您只是在做一个简单的DOM选择,我建议您直接打电话
document.querySelector('body').length
因为幻影实例中已经存在这些函数。您是否尝试过
文件://
?您可能需要绝对路径。尝试将fs.changeWorkingDirectory与该问题一起使用,并通过输出“fail”的测试进行更新。您尝试过绝对路径吗?不是吗file://index.html 绝对路径?是的,我有一个脚本标签