自动化 End-End 测试 Nightwatch.js 之踩雷笔记:Regex

正规表示式,Regular Expression、regex、regexp 或 RE 都行,是一个学起来就很好用的东西

例如我想要取出数字:

var re = new RegExp('/\b([0-9]|10)\b /'

更多教学可以参考这里:https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Regular_Expressions

而在 E2E 中,也是常有需要使用 Regex 的时候
假设我从某个栏位中取出资料,由於取出来的资讯可能很长或包含一些不固定的字元,使用 .equal().containsText() 就不那麽适合

在 Nightwatch 中也是有这麽好用的东西,用法如下:

.getText('span[class*=danger]', result => {
    result = result.value.match('(?<=\\?).*(?=\\=)')[0];
    this.assert.match(result, /ssn/);
})

使用 .match() 的方式,就可以快速切割出我们想要的值,也可以从验证的地方使用 regex

不过要注意的部分是,这边吃的 regex 不是根据 local 的 node,而是根据 browser 本身

举例来说,lookbehind 这种拿来切割的 regex syntax 在 Safari 就是不被 support 的

因此会直接有 regex 的 error 喷出~

关於什麽浏览器支援什麽 regex syntax 也可以从这里看:https://caniuse.com/js-regexp-lookbehind


<<:  Day-24 Hash Table(杂凑表)

>>:  产品团队调整

CSS微动画 - 弹出来的选单 Part.2

Q: 是不是来点icon比较知道这是干嘛的? A: 不复杂的可以用css画,复杂的可以考虑出图或是...

[Day 01] - 前言-在开始之前

前言 大家好,我是rei1997 想趁着这次的铁人赛督促自己学一些新东西, 虽然天天都在加班,只能趁...

Day21-TypeScript(TS)的函式(Function) Part1

经过前两天的函示介绍相信大家对函式(Function)已经有一定程度的了解了吧, 那麽对於TS的函式...

【JavaScript】阵列方法之some()

【前言】 本系列为个人前端学习之路的学习笔记,在过往的学习过程中累积了很多笔记,如今想藉着IT邦帮忙...

Swift 语言和你 SAY HELLO!!

第二十二天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,...