任何人都可以帮助我,我正在尝试通过阅读文本文件在网站上添加客户信息,但我无法使其正常工作。我希望添加每一行
示例文字
John:Doe:555-555
Jane:Doe:555-555
Ann:Doe:555-555
-
const fs = require('fs');
module.exports = {
'Add Client Info': (browser) => {
fs.readFile('RESERVED-CLIENT.txt', {encoding: "utf8"}, function read(err, data) {
data.split('\r\n').forEach(i => {
const a = i.split(':')
const first_name = a[0];
const last_name = a[1];
const phone_number = a[2];
return (
browser
.url('https://localhost:8000/admin/dashboard')
.waitForElementVisible('.add-new-client-form', 5000)
.waitForElementVisible('input[id=client-firstname]', 5000)
.waitForElementVisible('input[id=client-lastname]', 5000)
.waitForElementVisible('input[id=client-phone]', 5000)
.setValue('input[id=client-firstname]', `${first_name}`)
.setValue('input[id=client-lastname]', `${last_name}`)
.setValue('input[id=client-phone]', `${phone_number}`)
.click('#add-client-button')
.waitForElementVisible('.notice-dashboard', 5000)
.end()
)
})
})
}
}
我遇到错误✖ TypeError: Cannot read property 'split' of undefined
答案 0 :(得分:0)
此代码运行良好。您可以在线here进行检查,而无需进行夜表设置。
问题是执行拆分时您可能正在读取无效的文件,并且data
是未定义的:data.split('\r\n')
您可能要处理传递给err
回调的fs.readFile
参数,如果文件丢失,则会出现错误:
const fs = require('fs');
module.exports = {
'Add Client Info': (browser) => {
fs.readFile('RESERVED-CLIENT.txt', {encoding: "utf8"}, function read(err, data) {
if (err) throw err;
data.split('\n').forEach(i => {
const a = i.split(':')
const first_name = a[0];
const last_name = a[1];
const phone_number = a[2];
// ....
});
});
}
}
这将显示:
Process crashed with: Error: ENOENT: no such file or directory, open 'RESERVED-CLIENT.txt'