目前,我有一个包含10个字段的表单,我需要执行sendkey>存储值,然后在保存表单时断言此值。对于这些字段中的每一个,我需要创建一个函数并将值存储在一个变量中,或者有更好的方法吗?
我的实际代码:
var email = driver.findElement(By.name('email'));
email.sendKeys('info@domain.com');
email.getAttribute("value").then(function(email_text) {
var email = email_text;
});干杯,拉斐尔
发布于 2016-08-02 13:58:24
如果我理解正确的话,这个过程看起来你应该填写一些字段,记住它们的值,并在表单提交后检查它们的值。
对于这样的任务没有一个标准的决定,它取决于开发人员。
因此,我们知道需要哪些值,并且可以将其存储在例如map中
{
'email':'example@email.com',
'telephone':111222333
}关键字是用于查找元素的名称、值-对于sendKey和checkValue方法。
您应该编写两个方法,这两个方法将与测试数据映射一起工作,并将按映射键在循环中填充输入和检查值。
发布于 2016-08-02 21:40:37
你的意思是你想把它作为一个数组来做吗?
// 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
});https://stackoverflow.com/questions/38708456
复制相似问题