每个键必须是多个字符串;有未定义的量角器

时间:2017-09-21 07:27:03

标签: javascript json protractor

我正在尝试从json文件中读取数据,但是我遇到了一些麻烦。 如何从json文件中获取项目到单个项目?

我的json文件:

[
 {
  "UserName": "test@test.en",
  "Password": "tests123"
 }
]

我的方法:

element(by.name('username')).sendKeys(browser.params.UserName);
element(by.name('password')).sendKeys(browser.params.Password);

因此我得到了

Failed: each key must be a number of string; got undefined

2 个答案:

答案 0 :(得分:4)

您传递的是一个对象数组,而不是一个对象,因此,您必须在变量中精确。

直接传递对象

{
  "UserName": "test@test.en",
  "Password": "tests123"
}

或者在数组中指定索引

element(by.name('username')).sendKeys(browser.params[0].UserName);
element(by.name('password')).sendKeys(browser.params[0].Password);

答案 1 :(得分:0)

我的测试也失败了json文件,然后我将数据文件转换为ts文件,如下所示

export const DataForSearch =
{
    Login:
    { 
        CorrectCreds: { username: 'test@test.en', password: 'tests123' }
    }

};

然后在我的测试用例中使用它

    import {DataForSearch } from "../DataLogin"

const using = require("jasmine-data-provider");

describe("Login Page", () => {
    using(DataForSearch.Login, (data: any, alldesc: any) => {
    it("Login", () => {
    element(by.name('username')).sendKeys(data.username);
    element(by.name('password')).sendKeys(data.password);
    })
    })
})

如果仍然遇到问题,可以尝试打字稿文件。如果遇到任何问题,请告诉我