在page.open
中,我可以阅读有关如何使用http。
如何使用WebPage模块从文件系统中打开URL?
我试图省略http://
并使用../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报告$
是undefined
,jQuery包含在我的html文件中(太大而无法在此处发布)。它包括在内:
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
尝试运行函数也会产生错误,如
无法找到变量:function_name
答案 0 :(得分:0)
您正在打开的页面/文件是否已在页面上嵌入了jquery?如果没有,您将需要在页面对象上使用injectJs或includeJs,然后才能使用$
运算符。
http://phantomjs.org/page-automation.html
如果你只是做一个简单的DOM选择,我建议你只需要调用
document.querySelector('body').length
由于这些功能已存在于Phantom实例中。