草庐IT

phantomjs-prebuilt

全部标签

javascript - 像真正的浏览器一样用 phantomjs 打开标签页

PhantomJS是一个headless的WebKit浏览器。我可以用它打开一个url并获取每秒更新的页面内容。但是我需要同时获取很多(100)个页面的内容。所有页面必须同时打开并每秒刷新。一页可以,但我不知道如何一次从多个页面检索。这是examplecodefromthePhantomJSwebsite:console.log('Loadingawebpage');varpage=require('webpage').create();varurl='http://www.phantomjs.org/';page.open(url,function(status){//Pageisl

javascript - phantomjs 和 run-jasmine.js 超时

所以我遇到了一个奇怪的问题。我有一个Jasmine测试运行器在我的机器上本地运行,位于localhost:8080/test/runner.html当我在网络浏览器中打开它时,它运行良好。我想自动执行此操作,所以我使用了phantomjs(从brew安装——我在mac上)并且我使用了代码中的示例run-jasmine.js文件。但是,每当我针对URL运行它时,我都会得到:phantomjswar/test/spec/run_jasmine.jshttp://localhost:8080/test/runner.html'waitFor()'timeout所以我写了一个非常简单的脚本来查

javascript - 如何通过 PhantomJS 触发 MouseDown?

我试过:varclickEvent=document.createEvent('MouseEvents');clickEvent.initEvent("mousedown",true,true);jQuery('.left-rail-facets.facet-list.facet.CS.suggestion[data-value="B"]a')[0].dispatchEvent(clickEvent);但它只是无法触发网站上的操作。没有错误返回。 最佳答案 这就是您如何通过“mousedown”事件以编程方式触发对DOM元素的点击。

javascript - 从 phantomjs 网络服务器返回二进制结果

有没有办法以二进制形式从PhantomJS网络服务器返回结果?更具体地说,如果我将一个页面的屏幕截图呈现为base64,那么我能否将这个base64字符串转换为二进制并返回它,以便客户端将其作为图像接收?这是我目前所做的,我已经注释掉了一些显然不起作用的实验response.statusCode=200;response.setHeader("Content-Type","image/png");//response.setHeader("Content-Encoding","base64");varbase64=page.renderBase64('png');//varbinary

javascript - phantomjs 使用 src 图像在 canvas.toDataURL 上抛出 DOM 异常 18

我正在尝试使用phantomjs将svg转换为png图像:varpage=require('webpage').create();page.evaluate(function(){varsvg='';varsrc='data:image/svg+xml;base64,'+window.btoa(unescape(encodeURIComponent(svg)));varimg=newImage();img.src=src;img.onload=function(){varcanvas=document.createElement('canvas');canvas.width=img.w

javascript - 无法通过 phantomjs 网络服务器传送图像文件

我正在尝试让phantomjs网络服务器为我工作我想提供2个文件,html文件和一个png图像文件,html文件提供良好并在浏览器中正确呈现,但png文件不是这是服务器的代码varfs=require('fs');functionloadFile(name){if(fs.exists(name)){console.log(name+"Fileexist");returnfs.open(name,"r");}else{console.log("Filedonotexist");}}varserver,service;server=require('webserver').create()

javascript - 找不到变量 : Promise in Phantomjs

我正在用Jasmin编写测试用例。当我调用波纹管方法时,初始化({"Data":"primary"});这是:initialize:function(config){console.info("initializeVersion2initialized..");returnnewPromise(function(resolve,reject){console.info("promise");resolve(true);});}我遇到了错误ReferenceError:找不到变量:Promiseinhttp://localhost:8080/absolute/home/krushanu/

javascript - PhantomJS:确保响应对象在 server.listen(...) 中保持事件状态

我正在使用来自PhantomJS的server.listen(...)。我意识到它主要是实验性的,不应该用于生产。我将它用于一个简单的屏幕截图服务器,该服务器接受为URL生成屏幕截图;这是我用来玩PhantomJS的玩具项目。我特别注意到长时间运行的请求的问题,其中response对象不可用。以下是我的代码中的相关片段:varservice=server.listen(8080,function(request,response){response.statusCode=200;if(loglevel===level.VERBOSE){log(request);}else{consol

javascript - 使用 phantomjs 渲染一个 javascript 网页

我正在尝试使用phantomjs从网站呈现一个javascript评估的源代码。但每次我尝试时,我只会按原样获取源代码(类似于从浏览器查看源代码)。我真正想要的是javascript评估代码(我们从googlechrome浏览器的检查元素中看到的)。我的代码如下所示:varpage=require('webpage').create();page.open('http://www.google.com/',function(s){console.log(page.content);phantom.exit();});我是不是做错了什么? 最佳答案

javascript - 使用 PhantomJS 进行响应式设计测试

我有一个javascript应用程序(RequireJSwithBackbone),我正在使用PhantomJS和Jasmine对其进行测试。在经历了很多痛苦之后,我终于可以运行简单的测试了。我正在使用基于此处找到的测试运行器run-jasmine.js.我的应用程序是响应式的,因为随着视口(viewport)宽度的变化,各种DOM元素的宽度也会发生变化。我知道当我创建用于测试的“页面”时,我可以在“run-jasmine.js”中设置视口(viewport)宽度。我想知道的是.....您是否能够以某种方式在单个测试套件中循环遍历一系列视口(viewport)宽度。使用“run-jas