Phantomjs检查javascript是否存在并正在工作

Phantomjs检查javascript是否存在并正在工作,javascript,phantomjs,Javascript,Phantomjs,我对Phantomjs非常陌生,并且开始知道如何使用它。然而,所有的半高级教程并没有涵盖我想使用Phantomjs的内容 现在我的问题是,我如何检查Javascript是否在站点上处于活动状态,以及它是否正常工作(即不在控制台中抛出错误) 我希望有人能为我指出正确的方向,或者知道如何做到这一点。您可以使用以下方法与打开的页面进行交互: 要查看虚拟页面控制台,必须添加: 编辑:默认情况下执行javascript。您可以使用以下方法与打开的页面交互: 要查看虚拟页面控制台,必须添加: 编辑:默认情况

我对Phantomjs非常陌生,并且开始知道如何使用它。然而,所有的半高级教程并没有涵盖我想使用Phantomjs的内容

现在我的问题是,我如何检查Javascript是否在站点上处于活动状态,以及它是否正常工作(即不在控制台中抛出错误)


我希望有人能为我指出正确的方向,或者知道如何做到这一点。

您可以使用以下方法与打开的页面进行交互:

要查看虚拟页面控制台,必须添加:


编辑:默认情况下执行javascript。

您可以使用以下方法与打开的页面交互:

要查看虚拟页面控制台,必须添加:


编辑:默认情况下会执行javascript。

我想你正在寻找这个@ep0看起来不像它我需要从PHP调用phantomjs你说的“检查javascript是否处于活动状态”是什么意思?@fusio检查它是否已加载()比如当站点加载时,javascript也加载了吗?可能是重复的我想你正在寻找这个@ep0看起来不像我需要从PHP调用phantomjs你说的“检查javascript是否处于活动状态”是什么意思?@fusio检查它是否加载了onLoad()比如当站点加载时,javascript也加载了吗?可能是重复的而不是标题,有没有办法让我得到所有加载的javascript的列表?你是说
元素?在浏览器中,您可以在普通浏览器中执行所有操作。如何在普通页面中获取所有脚本?我猜类似于
document.querySelector('script')
;)如果我这样做,我会得到:TypeError:“null”不是对象(正在计算“document.querySelector.innerText”)phantomjs://webpage.evaluate():6 phantomjs://webpage.evaluate():8 phantomjs://webpage.evaluate():8我提供的例子是有效的,通过将其复制到js文件并在终端中运行
phantomjs file.js
,您可以自己进行尝试:)该错误意味着
document.querySelector
返回
null
,也就是说,它没有找到
s
,在本例中它是页面
title
Array.forEach.apply(document.querySelector('script')[(函数(elem){console.log(elem.getAttribute('src'));}])
将列出当前页面中包含的所有脚本源。是否有方法可以获得正在加载的所有Java脚本的列表,而不是标题?您是指
元素?在内部评估中,您可以在普通浏览器中尽一切可能。如何在普通页面中获得所有脚本?我猜类似于
document.querySelector('script')
;)如果我这样做,我会得到:TypeError:'null'不是对象(正在计算'document.querySelector.innerText')phantomjs://webpage.evaluate():6 phantomjs://webpage.evaluate():8 phantomjs://webpage.evaluate():8 null我提供的示例正在运行,请通过将其复制到js文件并在终端中运行
phantomjs file.js
)亲自尝试。该错误意味着
document.querySelector
返回
null
,也就是说,它没有找到
s
,在本例中,它是页面
标题
数组.forEach.apply(document.querySelectorAll('script'),[(function(elem){console.log(elem.getAttribute('src');}])
将列出当前页面中包含的所有脚本源。
var page = require('webpage').create();
page.open('http://m.bing.com', function(status) {
    var title = page.evaluate(function(s) {
        //what you do here is done in the context of the page
        //this console.log will appear in the virtual page console
        console.log("test")
        //here they are just returning the page title (tag passed as argument) 
        return document.querySelector(s).innerText;
        //you are not required to return anything
    }, 'title');
    console.log(title);
    phantom.exit(); //closes phantom, free memory!
});
page.onConsoleMessage = function(msg, lineNum, sourceId) {
    console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};