node下使用jquery
node使用jquery的两种方式
在node下,使用jquery有两种方法:
- 使用jsdom模拟一个window对象
- 使用cheerio,cheerio只实现了jquery的dom部分功能,相当于jquery的一个子集,jquery还包含网络请求、bom等更为丰富的API。
这两种方法各有利弊,jsdom的方式非常完善稳妥,jquery久经考验,但它的缺点在于速度较慢;cheerio速度较快,但是功能有限,然而cheerio的功能已经够用了。
使用jsdom的方式
fs = require("fs")
jquery=require('jquery')
jsdom=require('jsdom') //fs.readFileSync()返回结果是一个buffer,相当于byte[]
html = fs.readFileSync('haha.html').toString('utf8')
dom= new jsdom.JSDOM(html)
$=jquery(dom.window) console.log($('h1'))
使用cheerio的方式
cheerio=require('cheerio')
html=require('fs').readFileSync("haha.html").toString('utf8')
$=cheerio.load(html)
console.log($('h1'))
使用jquery+jsdom模拟浏览器实现自动化测试
测试是需要自动化的,靠人测不仅慢而且不准确。
测试不是为了覆盖住全部的错误,程序不可能通过测试来发现全部的问题,测试只是起到锦上添花的作用,测试只能在一定程度上减少基本错误。
selenium的自动化测试方案从用户的角度测试,node的出现为前端自动化测试提供了新方法。
node中的全局对象是global,浏览器中的全局对象是window,我们只需要让global中添加一个window对象便万事大吉了,这就需要用到jsdom。
有一个index.html文件,我们通过jquery的方式获取其中id为haha的span的文本。
<div><span id='haha'>天下大势为我所控</span></div>
很简单的lib.js
module.exports=function(){ return $("#haha").text() }
编写测试test.js
html=require('fs').readFileSync("index.html").toString('utf8')
jquery=require('jquery')
jsdom=require('jsdom')
dom=new jsdom.JSDOM(html)
global.window=dom.window
global.$=jquery(dom.window)
getHaha=require('./lib.js')
console.log(getHaha())
直接运行node test.js便能够对lib.js中的内容进行测试了。
转载于:https://www.cnblogs.com/weiyinfu/p/10151904.html
node下使用jquery相关推荐
- [转载]WebForm下使用 jQuery.loadUserControl异步load用户控件
现在做网站都追求用户体验,那么ajax自然就必不可少.如果您用过Asp.Net MVC ,你会发现Asp.Net MVC 和jQuery 配合的非常默契(事实上jQuery已经成了微软的御用脚本库了) ...
- Visual Studio下使用jQuery的10个技巧
广泛流行的jQuery是一个开源的,跨浏览器和兼容CSS 3的JavaScript库,你可以用它简化你的JavaScript编码任务和操作(添加,编辑和删除)HTML内容中的DOM元素,本文介绍10个 ...
- IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层、Dialog的问题
IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的问题 参考文章: (1)IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的 ...
- 夺命雷公狗---node下的一聊天室-首发
今晚感觉挺蛋疼,就用了点时间,在node下开发了个聊天室来玩玩,不过之是简单的开发了套而已,并没多做什么考虑,, 但是发现了一个好处就是用node来写聊天室代码居然少得可怜,这个不佩服node都不行, ...
- Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例
server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...
- 关于IE6下用Jquery attr('onclick')问题
当原代码编写者编写了如下代码 <input id="Button1" type="button" value="button" οnc ...
- html表格td向下排序,jquery实现的table排序功能示例
本文实例讲述了jquery实现的table排序功能.分享给大家供大家参考,具体如下: Document div { width: 1024px; margin: 0 auto; /*div相对屏幕左右 ...
- html5 menu下拉,jquery下拉菜单插件SelectMenu
SelectMenu.js是一款简洁.易用.多样的jquery下拉菜单插件.SelectMenu下拉菜单插件功能强大,支持下拉,分页,键盘操作等功能.它的特点还有: 基于 jQuery1.x 开发, ...
- 从零搭建个人博客(3)-如何在webpack环境下配置jquery和富文本编辑器Simditor
无论是博主自己写文章还是读者发表评论,都需要一个方便的编辑框,html自带的textarea和editable div都过于简单,本文将记录在webpack环境中添加jquery和Simditor的过 ...
最新文章
- Android应用中通过AIDL机制实现进程间的通讯实例
- centos65安装RabbitMQ3.6.5
- jQuery07源码 (3803 , 4299) attr() prop() val() addClass()等 : 对元素属性的操作
- 使用Lucid Virtu在有独立显卡的情况下使用Intel硬件加速H.264编码
- 信息学奥赛一本通(1044:判断是否为两位数)
- 利用MySQL存储过程分割字符串
- .net 自定义控件显示及传参--转
- 计算机设计类自我诊断意见,汽车故障自我诊断.doc
- QQ2005BIII网吧版修改方法(转)
- 金融安全视角农民投资理财的实证研究——以X县为例
- vue异常报错解决 Missing ref owner context. ref cannot be used on hois 或者是 Cannot read property ‘refs‘ of n
- 什么品牌台灯最舒服?推荐最热门的护眼灯品牌排行
- 怎样设置WinForm程序的公司名称、产品名称、版本信息
- 致远a8-v5-6.0协同管理软件_高危漏洞利用预警:近期利用“致远OA任意文件写入漏洞”的攻击较多...
- CreateEvent使用
- 用户体系分离项目总结
- python中的高等函数初探
- 深入理解图优化与g2o : 图优化理论与g2o的使用
- Linux常用命令——挂载命令(一)
- 【5分钟代码练习】01—导航栏鼠标悬停效果的实现