Tag: zombie.js

使用Zombie.js查询Backbone.js应用程序的DOM

只是今天第一次尝试了Zombie.js ,而且我无法访问通过javascript(特别是Backbone.js应用程序)填充DOM元素的页面。 作为一个简单的例子,我访问了Backbone.js Todo应用程序并手动添加了一些项目。 然后,我试着用僵尸来抓取#todo-list元素中的html,然后空着。 我已经设置browser.runScripts = true ,所以不应该一切准备僵尸查询? 查看源代码,内部HTML确实是空的。 这甚至有可能与Zombie.js? 还是我需要使用像茉莉花这样的东西呢? 我已经包括下面的示例代码,以及我得到的回应。 var zombie = require('zombie'), vows = require('vows'), assert = require('assert'); var baseUrl = 'http://documentcloud.github.com/backbone/examples/todos/index.html'; vows.describe('Zombie Tests on a Backbone App').addBatch({ 'Navigate to Todo List' : { topic: function () { browser = new zombie.Browser({ debug: true }); browser.runScripts = true; browser.on('error',function (err){console.log(err.stack)}); […]

使用POST方法通过Zombie.js浏览器调用API

我正在用Zombie.jstesting我的node.js代码。 我有以下的API,这是在POST方法: /api/names 并在我的testing/ person.js文件中的代码如下: it('Test Retreiving Names Via Browser', function(done){ this.timeout(10000); var url = host + "/api/names"; var browser = new zombie.Browser(); browser.visit(url, function(err, _browser, status){ if(browser.error) { console.log("Invalid url!!! " + url); } else { console.log("Valid url!!!" + ". Status " + status); } done(); }); }); 现在,当我从我的terminal执行命令摩卡 ,它进入browser.error条件。 但是,如果我设置我的API获取方法,它按预期工作,并进入有效的Url (否则部分)。 我想这是因为有我的API在后期的方法。 PS:我没有创build任何窗体来执行button单击查询,因为我正在开发一个移动的后端。 […]

node.js zombie.js多个浏览器错误

我想login到Web应用程序并开始模拟 – 即访问一些页面并更改一些值。 我的代码是: var Browser = require("zombie"); fail = function (error) {console.log(error)} function login(browser){ //console.log("login") return browser.visit("http://example.com/login").then(function(){ browser.fill('input[name="email"]', 'example@example.com') browser.fill('input[name="password"]', 'example') browser.pressButton("#login") return browser.wait().then(function() { return browser; }) }) } function simpleScenario(browser, id) { //browser.wait().then(function() { browser.visit("http://example.com/next_page") .then(function () { browser.wait(function() { var n = 5; var step = function () { var period […]

testingAngularJS express节点的应用程序

我有一个与jasmine-node和mocha (与zombie )testing我的应用程序的问题。 重点是angular不适用于这个testing环境 – 当browser.visit "http://localhost:3000/"它只显示布局,并且不显示任何模板链接 。 我猜javascript不会在浏览器(我的意思是僵尸对象)中运行。 我的testing是否有任何方法使其工作? 或者问题是不同的? 在茉莉花规范,我从另一个项目规范复制发生错误: /home/alder/Node/angular-express-coffee/spec/app_spec.coffee:12 throw error; ^ ReferenceError: angular is not defined at /js/services.js:4:3 at /js/services.js:6:4 in /js/services.js 所以我想JavaScript不起作用。 更新:我添加debugging选项,并在这里显示它: ➜ angular-express-coffee git:(master) ✗ mocha –require should –compilers coffee:coffee-script –colors -R spec –ui bdd Given I am a new user When I visit the home page […]

Zombie.js“断言没有定义”多次访问?

我正在与Zombie.js和Mocha进行集成testing,并遇到了令人困惑的问题,即只有第一个browser.visit()调用似乎成功了。 我的规格是这样的: browser = new Browser site: "http://localhost:101010" describe '/docs', -> ['app', 'server', 'timetable', 'util'].forEach (file) -> describe "/#{file}.html", -> it "documents #{file}.coffee", (done) -> browser.visit "/docs/#{file}.html", -> browser.text('title').should.equal "#{file}.coffee" do done 其中的第一个加载/docs/app.htmltesting没有发生。 但是,所有后续testing都会失败,产生如下的堆栈跟踪: ReferenceError: assert is not defined at Object.HTML5Parser.phases.inBody.startTagBody (/home/$USER/projects/timetable/node_modules/zombie/node_modules/html5/lib/html5/parser.js:1828:4) at Object.HTML5Parser.phases.base.processStartTag (/home/$USER/projects/timetable/node_modules/zombie/node_modules/html5/lib/html5/parser.js:65:40) at EventEmitter.Parser.do_token (/home/$USER/projects/timetable/node_modules/zombie/node_modules/html5/lib/html5/parser.js:2436:21) at EventEmitter.<anonymous> (/home/$USER/projects/timetable/node_modules/zombie/node_modules/html5/lib/html5/parser.js:2457:30) at EventEmitter.emit (events.js:117:20) at […]

抓取页面上的链接,然后访问并检查与node和zombie.js的每个链接

我试图在Node中使用zombie.js构build一个简单的实用程序来访问页面,查找并打开页面上的所有链接,并确保每个子页面都成功返回200。 下面是这个代码(用CoffeeScript编写)的例子,爬行stackoverflow.com的主页 Browser = require('zombie') browserOpts = runScripts: false site: 'http://www.stackoverflow.com' home = new Browser browserOpts home.visit '/', (e, browser) -> questions = browser.queryAll '#question-mini-list .summary h3 a' for q in questions qUrl = q.getAttribute 'href' page = new Browser browserOpts page.visit qUrl, (e, browser, statusCode, errors) -> console.log "Arrived at page #{browser.window.location} and found […]

如何激活与zombie.js的JavaScript链接

我试图让zombie.js来激活一个使用JavaScript的链接。 我正在testing的页面是: <html> <body> <div id="test123"> START_TEXT </div> <a href="javascript:go()">GO</a><br/> <script type="text/javascript"> go = function() { var el = document.getElementById("test123"); el.innerHTML = "CHANGED"; } </script> </body> </html> 我正在使用的脚本是: var zombie = require("zombie"); var browser = new zombie.Browser; browser.visit( "http://localhost:8000/testpage.html", function() { browser.clickLink("GO", function(e, browser, status) { var temp = browser.text("div#test123"); console.log("content:", temp); }); }); 我收到错误消息: […]

不能与zombie.js执行JavaScript?

好的,我是一个新的学习者node.js:当我尝试加载google.com,并在页面中执行脚本,如下所示: var zombie=require("zombie"); browser = new zombie.Browser({ debug: true }) browser.visit("http://www.google.com",function(err,_browser,status){ if(err){ throw(err.message); } }) 但得到错误: 28 Feb 16:06:40 – The onerror handler on target { frames: [ [Circular] ], contentWindow: [Circular], window: [Circular], ………………………… 我能做什么?

zombie.js和Google Maps API

我遇到了zombie.jstesting框架和Google Maps API的问题。 我有一个简单的zombie.js加载主页,并尝试点击login链接。 但是,当我查看返回的主页HTML(从zombie.js浏览器对象的angular度来看),我只在主体部分看到这一点: <body> <script src="https://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/12/main.js" type="text/javascript"></script> </body> 如果我从原始页面中删除Google Maps JavaScript,那么一切正常,我将得到完整的部分。 请求不使用地图API的不同页面也可以正常工作。 我在这里看到一个相关的问题,但解决方法没有完全描述: https : //github.com/assaf/zombie/issues/250 任何人都可以帮助我完全解决这个问题吗? 这里是有问题的zombie.js代码: suite('Zombie Sign In', function() { test('Home page should have sign-in link', function(done) { var browser = new Browser(); browser.debug = true; browser.authenticate().basic(conf.basicAuth.username, conf.basicAuth.password); browser.visit(conf.baseURL, function(e, browser) { console.log(browser.html()); // here is where I get the […]

Zombie.js不会返回完整的HTML

我刚刚testing了Zombie.js,我让它访问StackOverflow上的login页面。 我的代码如下: var Browser = require("zombie"); // Load the page from localhost browser = new Browser() browser.visit("http://stackoverflow.com/users/login/", function () { browser.wait(3000, function (){ console.log(browser.html()); console.log(browser.success); }); }); 我试着环顾四周,我知道Zombie.js运行脚本并压缩HTML,但是在这种情况下,整个代码体缺失。 我不相信这是相关的,但返回的HTML代码是: <html><head> <title>Log In – Stack Overflow</title> <link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico" /> <link rel="apple-touch-icon" href="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" /> <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" /> <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script><script type="text/javascript" […]