Articles of phantomjs

在云代工node.js上运行subprocess

有没有人试图在Cloud Foundry的node.js上运行subprocess? 我有以下代码在本地运行良好: var port = (process.env.VMC_APP_PORT || 3000), host = (process.env.VCAP_APP_HOST || 'localhost'), http = require('http'); var childProcess = require('child_process'), phantom = require('phantomjs'), ls; http.createServer(function(req, res) { ls = childProcess.exec('phantomjs -h', function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log('Error code: '+error.code); console.log('Signal received: '+error.signal); } console.log('Child Process STDOUT: '+stdout); console.log('Child Process STDERR: […]

使用与phantomjs和jenkins集成的pagespeed

我正在尝试使用pagespeed自动化网页性能。 有什么插件可用于phantomjs上运行pagespeed 我们有yslow插件和它在本地工作 http://yslow.org/phantomjs/ 我正在使用命令行,然后将其与Jenkins集成以进行持续集成 谢谢,感谢您的帮助 一些示例代码 phantom.create (ph) -> ph.createPage (page) -> page.open "http://www.google.com", (status) -> console.log "opened google? ", status page.evaluate (-> document.title), (result) -> console.log 'Page title is ' + result ph.exit()

Casper.js填写浏览器的用户名和密码?

某些情况下,网站会在浏览器中以这种forms询问用户名和密码(附图)。 有没有可能使用Casper.js填写这个? Casper.fill只能在HTML表单中执行。 http://casperjs.org/api.html#casper.fill 更新1: 我试过这个,并没有工作。 var casper = require("casper").create({ pageSettings: { userName: "myusername", password: "mypassword" } }); 这个login框是在Windows 7中,它popup的原因是因为我使用了代理。 而我必须这样做的原因是因为casperjs –proxy=xxxx –proxy-auth=u:p不起作用(至less在Win7上)

茉莉花穿梭在咕噜噜唧唧喳喳的失败

我为我的插件创build了一些茉莉花testing。 他们都通过浏览器(铬),但由于某种原因,当我在我的terminal使用“grunt-contrib-jasmine”任务,他们大多失败。 这里是一个例子: it("scroll to the correct floor", function() { // return and instance of my plugin (ascensor) var ascensor = getInstanceOfAscensor({}); var floorArray; // Triggered when 'next' is triggered ascensor.on("scrollStart", function(event, floor) { // floor look like {from:0, to:1} floorArray = floor; }); // trigger an 'next' event which // trigger a 'scrollStart' // […]

快照HTML页面然后使用node.js和幻影转换为图像

我正在尝试使用依赖phantomjs的节点weshot来创build我的网站的图像快照。 它在我的本地计算机上按预期工作,但是当我将其部署到活动的服务器上时。 它只是不断发射的图像生成的callback。 但是在这之下,这个过程仍然在生成图像。 (即)文件名被生成,但没有大小和内容。 10分钟后,文件将被填入图像数据。 但是字体没有正确渲染。 这里是截图: 并inheritance我的webshot代码: var options = { screenSize: { width: 403, height: 403 }, shotSize: { width: 403, height: 403 }, script: function() { $(function() { window.callPhantom('takeShot'); }); }, takeShotOnCallback: true }; webshot(baseUrl+frame_url, path, options, function(err) { if(err){ return res.json({ok:false, error:err.error || err}); } return res.json({image:baseUrl+img,ok:true}); }); 所以在技术上我有两个问题在这里: 即使图像生成尚未完成,Webshot也会返回callback。 […]

如何链接casper与任何存储

我需要将testing结果存储在任何存储中。 但不幸的是,它不会与任何db驱动程序任何时候引发exception“CasperError:无法find模块networking”: var require = patchRequire(require); var redis = require("redis"), client = redis.createClient(); 是否有可能将casperjs连接到任何存储(当然除了纯文件)。

WebdriverJS / IO&PhantomJS – 使用属性select器的Click处理程序不能与PhantomJS一起使用

我目前正在用WebdriverJS和PhantomJS编写一个应用程序testing套件。 为了确保我的testing工作,我首先通过Chrome运行它们,并且它们都正常工作。 当我换出PhantomJS的Chrome时,testing会中断。 这个问题 – WebDriver PhantomJS无法find元素,但与Firefox工作正常似乎概述了一个非常类似的问题,但附带的解决scheme似乎没有帮助。 下面是一个在Chrome上可以使用的types的简单例子,但不是PhantomJS上的例子: var client = webdriverjs.remote({ desiredCapabilities: { browserName: 'chrome' }, logLevel: 'silent' }); client.waitForExist("[data-id='1568911']", function(e){ client.click("[data-id='1568911']", function(e){ assert(!e, "Should click on a specific element:" + element); }); }); 在PhantomJS上运行时,我显然首先更改WebdriverJS选项: var client = webdriverjs.remote({ desiredCapabilities: { browserName: 'phantomjs', 'phantomjs.binary.path': "path/to/phantomjs" }, logLevel: 'silent' }); 但是当我运行testing并将logLevel设置为“详细”时,我收到如下所示的错误消息: [12:43:34]: COMMAND POST "/wd/hub/session/eb2b0a4b-e659-4607-bec0-82209bd6539a/element" […]

如何获得Google的知识图谱“人们也search”内容?

我试图在search结果页面上获取Google的“用户也search”内容,并使用PhantomJS来刮取search结果。 但是,我所需要的知识库部分并没有出现在我所得到的body 。 有谁知道我能做些什么来让我看到? 代码如下: var phantom = require('phantom'); phantom.create(function (ph) { ph.createPage(function (page) { page.open("http://www.google.com/ncr", function (status) { console.log("opened google NCR ", status); page.evaluate(function () { return document.title; }, function (result) { console.log('Page title is ' + result); page.open("https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google", function (status) { console.log("opened google Search Results ", status); page.evaluate(function () { return document.body; }, […]

在PhantomJS的evalute中,属性是未定义的

我通过在页面中包含jquery来通过phantomjs获取网站的内容。 现在我必须通过程序将它们写入文件。 为此,我使用了下面的代码 page.onLoadFinished = (function(status) { if (status === 'success') { page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', function() { page.evaluate(function() { var mkdirp = require('mkdirp'); mkdirp(counter+'_folder', function(err) { var html = $('pre[data-language="html"]').html(); var js = $('pre[data-language="js"]').html(); var css = $('pre[data-language="css"]').html(); var fs = require('fs'); fs.writeFile(counter+"_folder/"+"fiddle.html", html, function(err) {}); fs.writeFile(counter+"_folder/"+"fiddle.css", css, function(err) {}); fs.writeFile(counter+"_folder/"+"fiddle.js", js, function(err) {}); console.log("******* "+counter+" *************"); […]

ReferenceError:用SpookyJS找不到variables

我尝试在SpookyJS中调用外部函数,方法与在wiki中执行相同的操作: https : //github.com/WaterfallEngineering/SpookyJS/wiki/Introduction 但是,当我尝试下面的代码,我有这个错误: ReferenceError:找不到variables:test try { var Spooky = require('spooky'); } catch (e) { var Spooky = require('../lib/spooky'); } var urls = ["http://www.google.fr", "http://www.yahoo.com" ]; exports.clicker = function(req, res) { console.log("FIRST: " + visitUrl + " \n\n\n END FIRST"); var visitUrl = function(urlIndex, nbClicked) { console.log("HELLO"); }; var spooky = new Spooky( { […]