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

亲爱的小伙伴们,Node.js结合selenium做web自动化测试第四课的内容整理来了,今天介绍的是元素定位的八种方法

首先为大家介绍的就是定位元素的写法,这个大家应该并不陌生,上一节课的程序里有用到,不知道细心的同学有没有发现这里有两种写法

两种写法效果一样,至于你想御用哪一个,还是那句话,自己开心就好,我们的重点是,怎么来定位元素,下面,有请八个佳丽出场。

官网上有他们的花名册 

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

为了便于让大家看懂,下面的介绍呢我改一下出场顺序

1.By.id

一般情况下,Id都是唯一的,所以如果你在检查元素的时候可以找到它的id值,那就甭犹豫了,拿来用吧!怎么用呢?没图你说个屁,嗯,举个栗子:

我们先用一段程序在浏览器里面打开百度网址

这里我们点击编辑器然后鼠标定位到输入框,可以看到蓝色部分就是定位到的元素

框中有个显眼的id="kw"是吗,嗯,要的就是kw,这就是我们要找的id属性,所以接下来这样写

如我们所愿,它定位到了输入框,并且按照要求,在里面输入了“123”

id属性了解了之后,name和className的道理是一样的

还是刚才那段蓝色的框里的内容,注意到id后面的name和class了吗,这两个就是name属性和className属性

所以同样的功能用这两个写起来是下面这样:

2.By.name

3. By.className

这里大家注意:class属性要保证值是唯一的,检查是不是唯一的方法很简单,把属性值copy下来,检查页面ctrl+f,下面会出现一个搜索框,搜索框里把值贴进去

这里会显示值有多少个

就算这里查到的个数不是唯一的也不用担心,因为有些值可能是在ccs或者javascript里面,我们只要关心body里的值是不是唯一就可以了,比如我们刚刚这个,虽然总数不只一个,但是body里面是唯一的,所以放心的用就好了

4. By.xpath

这一个在上节课介绍过的,准确率较高的一种定位方式,用起来很简单,复制粘贴走一波就可以了,细节不演示了,大家自己动手,丰衣足食吧

5. By.css

By.css呢,跟xpath用法一样,都是可以直接复制粘贴的,还是刚那个路径,只不过要复制的地方稍稍往上一点

但是呢,css肯定不光这一个复制粘贴的办法,送你套秘籍,点这里http://www.w3school.com.cn/cssref/css_selectors.asp

这个选择器什么意思呢,举两个例子啊,上面知道了id属性和class属性了吧,我们用css定位的时候填写class属性,只需要在值的签名加一个.  同样,如果你用id属性,那么就在值的前面加#

比如说,我们刚刚搜索框的Id属性值是kw,那么这样写

或者这样

试一下结果,效果是一样的吧,惊不惊喜,意不意外,下面的那些大家以后的实践当中可以挨个玩玩

6. By.linkText

这个方法,主要用来点击页面上会跳转的链接,还是看百度首页

右上角这一排,点击任一一个都会跳转到一个新页面的链接,用By.linkText就准没错了,不用找属性,直接输入字段名称就可以,但是记得它是页面唯一一的字段才可以,如果这个字段在页面出现两个或以上,那乖乖的用别的方法去,没商量

下面点个“新闻”链接看看

7. By.partialLinkText

这个用法跟上面的一样,定位页面的链接,区别在于,它支持模糊查询,也就是说,输入要点击文字的一部分就可以了,我们要搜索“新闻”,在这里了,主要输入“新”或者“闻”都可以

效果一样的,不骗你

8. By.tagName

我们可以看到官网上在这种方法前面标注了deprecated,没错,它是一种被打入冷宫的方法,已经被弃用了,为什么这样对它呢?

原因这种方法呢要根据元素前面的标签来定位比如说div标签,a标签巴拉巴拉的一对标签,可是这样的标签有太多,找起来相当麻烦,所以呢,大家只要对它有个大致了解就好,实际运用中不用此方法定位元素

定位元素的几种方法上面介绍完了,下面说一下动态生成的元素怎么定位

何为动态生成的元素,比如这样,我们在输入框里输入123,这个时候下面会带出来好几个可能我们要找的选项

如果此时我们想要选择第二条“12306铁路客户服务中心”,你会发现当点击选择器的时候鼠标失去焦点,下面的信息就全都消失不见了,扎心了,老铁。。。

没关系,只要思想不滑坡,办法总比困难多

先记录输入框的Id属性值

然后在console界面下找到输入框,在里面输入搜索内容,这时就会自动输入搜索内容带出下面的结果选项

再切换到Element目录下,就可以定位到了

元素定位说到这里,第四课的另外一个内容,是如何截屏,老套路,还是先看官方文档怎么说https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Driver.html#takeScreenshot

调用的方法是takeScreenshot,我们代码实现一下

截屏数据存储在变量Imagedata里面,打印出来
输出结果里面的这一堆天书就是图片的源代码

怎么把这一堆天书存储成可以看到的图片呢,这里用这个方法fs    https://nodejs.org/api/fs.html

首先我们要require进来这个方法

然后把图片的源码转换成图片格式,参考这个文档

https://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver

照他说的,差不多就是这么写了

writeFile后面的第一个代表存储路径,screen.png是我们给他定义的文件名,imagedata我们刚刚给截图源文件的名字,base64是图片的编码格式,就是我们看不懂的天书

行不行,拉出来遛遛呗

看,多了一个.png

打开看一下,就是我们要的截图

今天的课堂笔记到这里结束,更多精彩内容,欢迎关注腾讯课堂

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

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

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

推荐阅读更多精彩内容