Protractor 如何在量角器工具中获取用户输入

Protractor 如何在量角器工具中获取用户输入,protractor,Protractor,实际上,我想从运行脚本的用户那里获得用户输入。我不想在脚本中硬编码testdata路径。例如,当我运行一个脚本来使用量角器和javascript测试angularjs时。用户应该能够给出testdata的路径,以便我可以在脚本中使用该变量 您可以通过从命令行传入params.testData值来完成此操作 protractor conf.js --params.testData=D:\path\to\testdata.xlsx 然后在测试中,您将使用global browser.params对

实际上,我想从运行脚本的用户那里获得用户输入。我不想在脚本中硬编码testdata路径。例如,当我运行一个脚本来使用量角器和javascript测试angularjs时。用户应该能够给出testdata的路径,以便我可以在脚本中使用该变量

您可以通过从命令行传入params.testData值来完成此操作

protractor conf.js --params.testData=D:\path\to\testdata.xlsx
然后在测试中,您将使用global browser.params对象引用它。您还需要使用fs来读取文件和处理数据。老实说,如果您为测试数据创建了一个.json文件而不是.xlsx文件,可能会更容易一些,但是如果您必须坚持这样做的话,似乎已经有库可以帮助您解析xlsx文档了。检查答案中的一些例子

此代码不会按原样工作,但其基本思想如下:

before(() => {
  const testDataPath = browser.params.testData;

  fs.readFile(testDataPath, (err, data) => {
    if(err) { // fail? };

    const testData = data;

    // do some other stuff with test data ...
  });       
}

您需要对.xlsx文件中的数据进行一些额外的处理,以获得正确的格式,但这应该有助于您走上正确的道路。

请,我希望在规范文件中实现这一点。我给了一个在你的规范文件中使用它的例子。const testData=browser.params.testData;这不是你的意思吗?我不确定您所说的测试数据路径是什么意思。更新了我的答案,并给出了在规范文件中使用它的示例。例如,我在路径D:/testdata/testdata.xlsx中有一个带有用户名和密码的excel文件。因此,运行此脚本的其他用户应该能够在控制台中提供路径,规范文件应该使用此变量并运行脚本。