1

目前我有一个包含 10 个字段的表单,我需要执行 sendkeys > 存储值,并在保存表单时断言此值。对于这些字段中的每一个,我需要创建一个函数并将值存储在一个变量中,还是有更好的方法?

我的实际代码:

var email = driver.findElement(By.name('email'));
email.sendKeys('info@domain.com');
email.getAttribute("value").then(function(email_text) {
    var email = email_text;
});

干杯,拉斐尔

4

2 回答 2

0

你的意思是你想把它作为一个数组来做吗?

// you can represent each field as an object
var fields = [
    { elementName: 'email',    expectedText: 'info@domain.com' },
    { elementName: 'password', expectedText: 'bla bla bla' }
];

// sendKeys to each field with the specified text
fields.forEach(function(field) {
    browser.driver.findElement(by.name(field.elementName)).sendKeys(field.expectedText);
});

// to get all the field text (from promises) and store it as an array
browser.controlFlow().execute(function() {
    var textArray = [];
    fields.forEach(function(field) {
        browser.driver.findElement(by.name(field.elementName)).getAttribute('value').then(function(actualText) {
            textArray.push({elementName: field.elementName, actualText: actualText});
        });
    });
    return textArray;
}).then(function(storedTextArray) {
    // do something with the stored text array here
});
于 2016-08-02T13:40:37.287 回答
0

如果我理解正确,该过程看起来您应该填写一些字段,记住它们的值并在提交表单后检查值。

像这样的任务没有一个标准的决定,这取决于开发人员。

因此,我们知道我们需要哪些值,并且可以将其存储在例如地图中

{
'email':'example@email.com',
'telephone':111222333
}

Key 是查找元素的名称,value - 用于 sendKey 和 checkValue 方法。

您应该编写两个方法,它们将与测试数据映射一起使用,并将通过映射键循环填充输入和检查值。

于 2016-08-02T05:58:23.867 回答