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

      大家好,欢迎来到Node.js结合selenium做web自动化测试课堂,今天的内容是显式等待和隐式等待,首先介绍一下显示等待和隐式等待的概念

      假设老猴子和小猴子约定明天9点钟去山下的桃树前集合,一起去摘桃

显式等待:老猴子8点20分到了树下,小猴子8点30分到了,但是时间没到9点钟,于是他们在树下打农药到9点钟开始上树摘桃,这种有一个硬性等待时间的操作就是显式等待

隐式等待:老猴子8点20分到了树下,小猴子8点30分到了,他们都在9点前到了集合地点,虽然时间没到,但是队友齐了,于是他们8点30分就开始上树摘桃,这种规定了一个最长等待时间,在规定时间内前面操作完成就可以进行下一步的操作就是隐式等待

到这里不知道这个解释的是否清楚,如果还不清楚,那再举一个例子:

假设有10个猴子排队摘桃子,如果规定第一个猴子上树和第二个猴子上树的时间间隔要为3分钟,也就是前一个猴子可能2分钟就可以摘完桃下树,但是后面一个猴子一定要等满3分钟才可以上树摘桃,这就是显式等待

那么隐式等待是怎样的呢,两个猴子之间规定一个最长的等待时间3分钟,在这3分钟之内前面一个猴子花2分钟摘完桃下来,后面一个猴子可以立马上树摘桃,这就是隐式等待

按照上面的例子,显式等待的情况,10个猴子都摘完桃子需要30分钟,而隐式等待中,10个猴子花20分钟就可以摘完桃子,很明显,相比之下,隐式等待大大的节省了时间,省下的时间可以供猴子们尽情打农药

同样的道理,在我们做自动化测试的时候也是一样的,运用隐式等待可以节省测试时间,我们的目标,不仅仅是没有蛀牙,更要把工作的效率提到最高。

概念解释到这里,不用代码细说的都是耍流氓,接下来,翠花,上代码

为了方便看到等待时间的效果,我们用一个带有加载动画的页面进行测试https://autowebtest.github.io/mys

这样的界面,打开你就能看到效果了,跳转出来左上角的导航按钮还是需要点时间的

按照我们之前的经验,先把程序写起来,这个不用解释了吧,老生常谈了,大家看到我现在的代码里面是没有加等待时间的是吧,这个时候你去运行一下,肯定会报一个元素找不到的错误,当然这个之前的笔记中也有提到过,事实上呢,并不是元素定位出了错,锅在于页面上的元素还没来的及上场,我们的程序就动手去找了,必须找不到

报错的贴图这里不贴了可以吗,一段红色的字,你们看了该不开心了,我们下面做个显式等待的程序,很简单,你们也见过,就是sleep呀,点击按钮和链接的步骤前都加一段sleep,再试试,可以跳出来没问题吧?跳不出来我让猴子给你摘桃吃

显示等待有没有觉得so easy,但是我们也说了,这样呢就给人家写死了每一步要等待多久,万一说哪天网速开挂了,1s钟就跳出元素,还得傻傻的等过了3s再执行下一步,少年,我们是要效率滴!没问题,要效率是吧,改!隐式等待,怎么写?去官网找API文档

https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Driver.html#wait

这一段的解释是,wait后面跟三个参数,第一个是等待条件,第二个是设置的等待时间,第三个是如果报错返回的信息

大致写法是这样的

代码里先把By和until引入进来

我们再来看一下until用法

https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/until.html

until下面的一系列元素可见,元素加载完成,显示元素文本,上面的程序中也可以看得到的,都是可以拿来用的

所以我们的程序这样写,按照API上的说法,前置条件是等待元素出现定位元素,后面设置最长等待时间10s,这里的单位是毫秒,所以10s是10*1000,定位到以后后面加click点击操作

大家在定位元素的时候有没有发现,findElement和findElements,多个s什么区别呢,英语老师告诉我们这是单复数的区别,在代码里面就是单个元素和多个元素的区别喽,比如这里,导航的列表下几个选项

定位的时候可以发现他们是隶属nav下的ul里,那么这些元素的值我们可以定义为nav>ul>li,我们的程序里遍历一下获取到各元素的文本

将多个元素赋值到一个数组eles,打印出数组长度eles.length,遍历数组eles,获取数组中每个元素ele的文本内容,打印出文本内容

执行出的结果:数组长度是4,每个元素的内容在下面逐一列出

可以将此方法运用到今后遇到的下拉列表里获取元素信息,大家可以在各个网站尝试练习

今天的课堂笔记到这里结束,感谢大家收看

腾讯课堂https://ke.qq.com/course/281565#tuin=173f40be,周一至周五晚上8:00,欢迎报名学习

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

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

推荐阅读更多精彩内容