Node.js结合selenium做web自动化测试第三课

又过了一天,又见面了,今天Node.js结合selenium做web自动化测试的第三课,我们来尝试从0创建一个自动化脚本,怎么样,有没有很期待

这里呢,首先我们要感谢我们的大神赵老师,出资购买了一台云服务器,为大家搭建了一个真实的在线项目供大家练手,这就是后面我们使用率会高达百分之好几百的Cnode社区 http://118.31.19.120:3000/,希望大家玩的开心,玩的尽兴,你一定会爱上这里

那下面废话不多说,撸起袖子咱们开始干吧

第1步,我们打开命令行,cd Desktop进入桌面(进别的路径也可以噢,这里为了方便给大家展示所以在桌面上)

2. mkdir 20180315   在桌面上创建一个名叫20180315的文件夹

这个时候去桌面上看,一定会多一个这样的文件夹,ok,接着往下走

3. cd 20180315   cd命令就是打开这个文件夹的意思,聪明如你,一定不需要多解释的

4. npm init   这个操作,就是初始化项目了,当你看到我下面标红框的这段的时候,后面它是不会自己往下走的,怎么办呢,动动你勤劳的小手,按一下Enter键,但是不只按一下哦,记得它蹦出来一行你就按一下,直到它问你“Is this OK?”这里点最后一下Enter键,项目的初始化就完成了

完成后,我们去桌面上打开20180315这个文件夹,你会发现,这里多了一个package.json文件,恭喜你,这一步成功

到这里,我们想一下,从课程开始,我们的标题一直都是结合selenium做web自动化测试,大家一定会问,selenium到底是什么啊?这个问题问的好,多了好多细节在里面,这么抽象的概念,我肯定不敢乱解释啊,那我们看看官网怎么说的吧 https://seleniumhq.github.io/selenium/docs/api/javascript/index.html

网站大家自行点开啊,概念我就不复述了,小伙伴们英文一定都比我好,看到Installation这里,有没有觉得很眼熟?没错,第一课中就介绍的,安装selenium-webdriver啦,小case,所以我们的下一步

5. 命令行安装selenium-webdriver 和 chromedriver

 npm install selenium-webdriver --save

 cnpm install chromedriver--save

安装好了再看文件夹,是不是又多了两个文件,多了就对了

node_modules里面是我们这个项目里所需要的依赖包,供你尽情玩耍的后盾

package-lock.json又是啥?它啊,因为各个包会更新换代吧,今天1.1,说不定明天就2.0了,这个lock.json就是记录我们在安装这些依赖包的时候,当时各个包的版本的

准备活动到这里做完了,接下来当然就是建立脚本了,新建一个.js文件,代码开动了,便于操作,还是找我们的CukeTest

6. 打开我们的项目

新建一个.js文件,取名test.js

下面就是大家期待的写脚本了,还记得上面的官网吗,先别关啊,我们去看一眼selenium脚本的套路,啊不,大致框架是怎样的,就是这一段

懵圈吗?不明觉厉吗?没关系,我一步一步告诉你这一大段是怎么来的

首先,我们要引入selenium-webdriver里的方法,那么接下来要使用的常量一定要定义了(定义常量变量上一节课内容,没看过的回去找一找哈)

然后呢,浏览器里的一系列操作一定要写进一个方法啊,那就再定义一个方法

这里呢,在方法前面加了一个async,第一节曾经说过,这是为了解决异步问题加的,后面会有一节课来详细讲这个语法,大家不明白这里也没关系,只要记住一点,async和await是Node.js里的一对CP,所以下面的代码里面会出现await,看到await不要奇怪,它不是偷渡来的黑户,只是async带过来的

好,下面开始填充function

既然我们的项目是打开Cnode社区的网址,那么第一步肯定要打开浏览器了

new Builder()就是新建浏览器,forBrowser('chrome')意思是传入chorme浏览器,官网里面传的是firefox道理是一样的,后面的build()是调用打开浏览器的方法

打开浏览器的操作这么长,我们用一个变量来存储它吧,上节课说到的let可以出场了

这里大家可以运行一下,可以打开chrome浏览器

然后就是打开网址了,用赵老师搭建的环境

这里运行,可以打开Cnode社区网址

下面我们做一个登陆操作,这里要用到一个元素定位,元素定位的几种方法会在下一堂课重点讲解,这里先给大家推荐准确度较高的xpath定位

我们在界面上右键-检查元素

点击选择器按钮,变蓝色表示激活

将鼠标移动到右上角“登录”按钮上,检查元素页面会定位到元素位置(红框部分)

在此处右键->copy->Copy Xpath,这个空白处粘贴一下,你就可以看到这个它的内容了,记着别删啊,下一条就用到了

找到了登录按钮,我们该点击了是吧

findElement就是查找元素,里面的xpath是定位元素用的方法,引号里的内容熟悉吗,刚刚copy下来的嘛,后面的click是调用的点击操作

现在程序肯定可以跑到这个界面了吧

接下来就填写用户名和密码,再点一次登录按钮吧,方法,跟上面的一样,xpath定位,不重复写了,怕你们嫌我啰嗦,提供两个已经注册好的用户名密码testuser01/123456、testuser02/123456 拿去浪吧,不用谢

sendkeys就是往输入框里传输字段,因为输入的内容是字符串,记得加引号哦

这段代码你再跑一下试试,一定可以登录成功,登录不上你打我

你想问官网上这个怎么不一样是吗,我们不一样,不一样。。。

就知道你要这么问,这个Key呢,意思是直接点击键盘上的某一按键,就比如我们输入完密码之后懒得用鼠标点一下登录按钮了,怎么办,直接回车呗,代码改成下面这样,结果一样的,有啥不一样

到这里结束了吗?再优化一下吧,刚刚写一行操作一下,是不是跟我一样,打开了好几个浏览器了,都在任务栏上面挂着呢

排排坐,没果果

这么多,当心CPU拿小拳拳捶你胸口,问我怎么办,好说,执行完了加个关闭浏览器呗

好了,拿走吧

什么?你说代码跑偏了不好看啊,哦对对对,代码不要面子啊?我的锅,作为一个负责的测试,我们要写高颜值的代码,我们CukeTest懂的,右键一下,看到格式化文件了吗,对,点一下

高颜值代码

到这里,我们就是从0开始创建了一个自动化脚本,看看自己的代码,宝宝们还满意吗。

多个场景的测试情况,参考第二节课新建项目更改场景大纲的方法,没看过的小盆友自己蹲墙角补课

Node.js结合Selenium做web自动化测试https://ke.qq.com/course/281565#tuin=173f40be

风里雨里,每天晚上8:00,准时等你

测试工具CukeTest下载地址http://www.cuketest.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容