自动化 End-End 测试 Nightwatch.js 之踩雷笔记:上传档案II

如果上传档案不想使用 preload 档案,也不想用下载的方式,其实可以上传档案至 selenium grid。

截至写这篇的时候,Nightwatch.js 其实有 v2 了,不过还是测试版,因此还是分享一下如何撰写客制化的 command 来上传档案

uploadLocalFile

在测试网页中的上传档案一样是使用 setValue() 的方式,不过如果想把 local 端的档案上传上去,可以先透过 zip 的方式将档案压缩并转成 base64 encoded 的 buffer,如此就可以用这串发一个 http request 给远端的 selenium grid.

const AdmZip = require('adm-zip');

const zip = new AdmZip();
zip.addLocalFile(filePath);
const file = zip.toBuffer().toString('base64');

try {
    var returnValue = await this.httpRequest({
      path: '/session/:sessionId/file',
      sessionId: this.api.sessionId,
      data: { file },
      method: 'POST',
    });
    } catch (err) {
    console.error('An error occurred uploading file', err);
    return {
      status: -1,
      error: err.message,
    };
}

this.
setValue(inputSelector, returnValue.value)

<<:  Day26-Kaggle Titanic迈进前5% part(3)

>>:  DAY 13 接下来的实作

Day 22 ATT&CK for ICS - Discovery(2)

T0888 Remote System Information Discovery 攻击者透过後门收...

DAY18:激活函数

激活函数 每个神经元都有一个激活函数,由这层神经元输出给下层神经元的输入,中间就会有个函数关系,将之...

【Day 17】分散式资料库 High Availability 初探

对於分散式资料库的高可用性, 在前面【Day 3】分散式系统模型、容错、高可用的後段已经提过衡量的标...

使用 XmlPullParser (一)

上篇我们介绍了 XmlPullParser 和常用的几个 event type ,现在我们来介绍它的...

Day 18-更改 state 有其风险,State manipulation 有赚有赔(?),更改前应详阅官方文件说明书

更改 state 有其风险,State manipulation 有赚有赔(?),更改前应详阅官方文...