注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

casperjs实现自动登录网易邮箱账号  

来自nowind   2016-09-20 19:56:27|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
用的是phantomjs+casperjs,使用的是coffeescript语法。
首先,网易的产品现在统一使用iframe嵌入登陆框,且登陆后各产品共用cookie(单点)。
我们选择其中一个产品分析下登陆情况,代码以云课堂为例。
它的单独登陆页面http://study.163.com/member/login.htm,页面除了顶部那个统计用iframe,下边有个src为http://webzj.reg.163.com/out/pub/index_dl.html?cd%3Dhttp%3A%2F%2Fcst.stu.126.net%2Fu%2Fcss%2Fcms%2F%26cf%3Durs4web.css&wdaId=的iframe,页面左边这个登陆都是在这个里边的。
因为html的安全设置,父页面的代码是无法访问iframe页面(h5的消息通知可以交互的),我们需要看看phantomjs或者casperjs有提供什么支持么。
查看http://phantomjs.org/api/webpage/method/switch-to-frame.html 在webpage对象下,发现几个和iframe相关的函数,定位到switchToFrame函数,这是个切换frame的函数,接受str和int两种类型。由于这个页面都没设置name,只能采用位置编号。貌似没提供dom元素作为参数的。
login163: (user,pwd)->
casperjsWeb.thenOpen "http://study.163.com/member/login.htm",()->
@page.switchToFrame(1)
@thenEvaluate (user,pwd)->
document.querySelector("[name=email]").value=user
document.querySelector("[name=password]").value=pwd
,user,pwd
@thenClick ".u-loginbtn"
@wait 1000


基本上是这样了。再来说明下phantomjs+casperjs在win上的部署吧。
访问:http://phantomjs.org/ 下载phantomjs 现在2.1是主流了,不过和1.X也差别不大,主要是require方法在coffcescript中要使用全局的。就是要下面这个样子操作下。

require = patchRequire global.require


下载的文件里其实只有1个可执行文件是可用的。
去http://casperjs.org/ 下载casperjs ,最新版应该是1.x,这货基本也不变,无非就是目录文件变来变去。把phantomjs主文件拷到casperjs目录下,然后修改batchbin的启动文件,设置成正确的路径即可
  评论这张
 
阅读(168)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016