如何使用/从python字典发送Keys()

时间:2016-06-24 09:11:18

标签: javascript python angularjs protractor

喜欢的东西;

element(by.model('formData.name')).sendKeys('David Cameron');

我正试图在用户注册时找到一种方法来测试我的管理员方面。在某个地方,我将不得不使用expect(以检查条目是否已提交到后端)但我想使用大约10个名称的python字典,其中量角器测试选择random到{{的名称1}}。如何建立链接?

2 个答案:

答案 0 :(得分:1)

将您的Python词典转储到JSON文件中,例如json.dump(),然后您可以导入JSON文件并在browser.params中设置onPrepare()

onPrepare: function () {
    var fs = require('fs');
    var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

    browser.params.names = obj;
},

然后,您可以在测试中使用browser.params.names。要从数组中获取随机值,请参阅以下主题:Getting a random value from a JavaScript array

答案 1 :(得分:1)

我通过在我的testing * spec.js文件中直接创建javaScript对象来解决这个问题,例如3个随机的人(对象);

在我的 sell-spec.js 文件中;

var random = function(){
    return Math.floor((Math.random() * 3) + 1);
}

var users = [];
var user1 = {
    name : "Jacob",
    tel : "123",
    email: "1@1.com",
    reg: "1234",
    vin : "2345"
};
var user2 = {
    name : "Jacob2",
    tel : "1232",
    email: "1@12.com",
    reg: "12342",
    vin : "23452"
};
var user3 = {
    name : "Jacob3",
    tel : "1233",
    email: "1@13.com",
    reg: "12343",
    vin : "23453"
};

users.push(user1);
users.push(user2);
users.push(user3);

var selectedUserIndex = random();
selectedUser = users[selectedUserIndex]

element(by.model('formData.name')).sendKeys(selectedUser.name);
element(by.model('formData.cell')).sendKeys(selectedUser.tel);

以及我的其他(管理员)规范 admin-spec.js 文件;

expect(element.all(by.binding('name')).first().getText()).toEqual('Name: ' + seller_details.selectedUser.name );
expect(element.all(by.binding('cell')).first().getText()).toEqual('Cell: ' + seller_details.selectedUser.tel);