iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
Modern Web

自動化 End-End 測試 Nightwatch.js系列 第 20

自動化 End-End 測試 Nightwatch.js 之踩雷筆記:Regex

  • 分享至 

  • xImage
  •  

正規表示式,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


上一篇
自動化 End-End 測試 Nightwatch.js 之踩雷筆記:select option
下一篇
自動化 End-End 測試 Nightwatch.js 之踩雷筆記:Timezone
系列文
自動化 End-End 測試 Nightwatch.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言