Nighwatchjs阅读文本文件nodejs

时间:2018-09-10 13:20:37

标签: node.js nightwatch.js

任何人都可以帮助我,我正在尝试通过阅读文本文件在网站上添加客户信息,但我无法使其正常工作。我希望添加每一行

示例文字

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

1 个答案:

答案 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'