使用PhantomJS从文件系统打开URL

时间:2014-05-07 12:50:24

标签: phantomjs

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

1 个答案:

答案 0 :(得分:0)

您正在打开的页面/文件是否已在页面上嵌入了jquery?如果没有,您将需要在页面对象上使用injectJs或includeJs,然后才能使用$运算符。

http://phantomjs.org/page-automation.html

如果你只是做一个简单的DOM选择,我建议你只需要调用

document.querySelector('body').length

由于这些功能已存在于Phantom实例中。