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

Hello小伙伴们,愉快的周末结束了,别忘了学习,今天回顾第五课内容。主要分三部分

下面开始我的表演了:

一.定位元素的By.js方法

Node.js结合selenium做web自动化测试第五课_第1张图片

它这是几个意思呢?它的意思是在js方法里传一段javascript代码来找到元素进行定位,又懵了吧,咱们有话进百度说

Node.js结合selenium做web自动化测试第五课_第2张图片

前期准备做好,打开浏览器,定位方法By.js,要传javascript代码,那后面跟个function方法,没毛病

接下来,坐稳了,要放大招了

Node.js结合selenium做web自动化测试第五课_第3张图片

咦?在哪里,在哪里见过你,这段代码如此熟悉,别一时想不起。

没错你们见过,不是在梦里,在上节课的笔记里,定位元素后面举过一个动态定位的栗子,道理一样的,只不过这里把这个值return回来,这一段在console里面的代码就是一段Javascript代码,多做练习多比较你就明白了,我先帮你到这噢

后面当然是被我们玩烂了的sendKeys啦,记得把K大写,这里初学者很容易出问题。

二.在时间控件上输入日期

如果在这种情况下,想订张五一的票出去浪,那得点击后面的小箭头吧,定位元素去吧,去点个编辑器的功夫,日期页面就不见了,跟上次那个动态的定位有一拼,怎么玩,前面说了这么多铺垫,你心里肯定能有点数了

Node.js结合selenium做web自动化测试第五课_第4张图片

找到日期框对应的元素

Node.js结合selenium做web自动化测试第五课_第5张图片

这一段不啰嗦了,javascript代码

Node.js结合selenium做web自动化测试第五课_第6张图片

既然javascript代码可以直接将时间定位到我们想要的日期,那怎么把它写到Node.js的自动化代码里面去呢?那必须调方法啊,这次调这个executeScript

Node.js结合selenium做web自动化测试第五课_第7张图片

不用findElement了,直接调用直接输入,开心吧

Node.js结合selenium做web自动化测试第五课_第8张图片

三.cucumber的“背景”功能用法

这里我们结合Cnode社区的发帖功能来说

创建一个新的剧本,两个场景,发帖和改贴,有没有发现两个场景下面有一个相同的功能点是登陆,同样,如果新加一个删除帖子的场景,第一步要做的还是登陆操作,既然这是一个公共的操作,可以把它单独提取出来吗,答案是:当然可以!这就是我们要说的“背景”

Node.js结合selenium做web自动化测试第五课_第9张图片

下面,我们在最开始的地方新建一个场景,就是我们之前做过的登陆场景,还是这个地方,把类型改成背景

之后你就会发现,下面每一个场景操作之前都会先走背景这个步骤

Node.js结合selenium做web自动化测试第五课_第10张图片

之前登陆步骤写过辣么多,现在再逐条的写,想不想哭,别哭,有办法,看到这里的搜索按钮了吗,哎,点一下

Node.js结合selenium做web自动化测试第五课_第11张图片

左边这些熟悉吗,当然啊,化成灰都认识,之前写过的登陆步骤嘛,点住了往右拖就行了,不用重新写

Node.js结合selenium做web自动化测试第五课_第12张图片

接下来是按套路出牌,补充发帖场景,发送文字的场景凭大家的聪明才智都是小case,下面我们举一个特殊一点的例子,帖子里发送图片的场景

首先点击“发布话题”按钮进入发布话题页面

Node.js结合selenium做web自动化测试第五课_第13张图片

这个框里面的代码是干什么用的呢,就是我们点击了“发布话题”按钮它应该跳转发布话题页面吧,那是不是真的进入了这个页面呢,我们需要做一个断言,这一段就是断言,断言的依据是页面的url地址,先去页面里拿到页面的真实url地址,赋值给变量url,然后用getCurrentUrl的方法读取点击按钮后跳转的地址链接,assert断言如果两个地址一致,说明跳转的页面是正确的。

接下来进行上传图片

Node.js结合selenium做web自动化测试第五课_第14张图片

那么问题来了,开发者工具无法获取到我们要上传的图片的路径

Node.js结合selenium做web自动化测试第五课_第15张图片

点击上传图片,找到input,type是file的控件,可以看到后面它接收的是image,那就没错了,接下来就调用sendKeys发送图片路径就OK了

Node.js结合selenium做web自动化测试第五课_第16张图片
不好意思,太长右边没截全

这里windows的路径一定要注意一下,要用双斜杠“\\”,不然找不到图片还报错哟

上面有两段sleep,这里是对两个步骤之间加了个等待操作,为什么这样做呢?不知道大家有没有过这样的经历,那就是一个网页打开的速度没有赶上定位元素的速度,例如上面这个操作里,点击了图片跳转到上传图片这个过程需要3秒钟,但是,下一步的查找元素操作主要1.5秒,那就意味着,当要查找的元素还没出现时,定位元素已经开动了,所以你的操作结果里一定会有一个报错叫做元素找不到,你的第一反应肯定是定位方法出了问题,于是把所有方法都换了一边发现还是不对,其实问题的根本在于需要一个给页面缓冲的时间。

注意:sleep后面的数字,它的单位是毫秒,所以3000意味着3秒,可不是3000秒啊

到这里,本节课要介绍的内容基本结束了,手痒的小伙伴赶紧打开工具开玩吧

更多精彩尽在腾讯课堂

https://ke.qq.com/course/281565#tuin=173f40be,周一至周五晚上8:00

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

你可能感兴趣的:(Node.js结合selenium做web自动化测试第五课)