gpt4 book ai didi

javascript - Trim 不是 Protractor 中的函数

转载 作者:行者123 更新时间:2023-11-30 16:20:05 25 4
gpt4 key购买 nike

我无法在 Protractor 中 trim 结果然后传递到数组中。相关字段包含一个将形成 JSON 对象的字符串。

我传入字段 element(by.id(fieldName2)).sendKeys('{"Name":"JoeNew"}');

然后使用 browser.params.newValues.push(element(by.id(fieldName2)).getAttribute('value')); 将其插入数组。导致 //{"Name":"JoeNew"} 被存储在数组中。

然后我重新加载页面并检查该字段的内容确实是我想要存储的内容,但是因为它是 JSONified 它将返回为:

{
"Name":"JoeNew"
}

为了比较两者,我需要 trim() 以便它恢复为 {"Name":"JoeNew"} 以便进行比较。

browser.params.updatedValues.push(trimResult(element(by.id(fieldName2)).getAttribute('value')));

function trimResult(toTrim) {
return toTrim = toTrim.trim();
};

遗憾地返回失败:toTrim.trim 不是函数。但是,我能够毫无问题地执行与其他字段类型类似的任务,例如 Date.parse(date) 等。

有人能帮忙吗?

编辑:

promise 将两个数组与以下内容进行比较:

protractor.promise.all(browser.params.updatedValues).then(function (resolvedValues) {
console.log(resolvedValues);
browser.params.updatedValues = resolvedValues;

expect(browser.params.updatedValues).toEqual(browser.params.newValues);
});

最佳答案

getAttribute() protractor 中的函数以promise 的形式返回值,所以要使用trim(),应该先获取值再执行操作。方法如下 -

browser.params.updatedValues.push(trimResult(element(by.id(fieldName2)).getAttribute('value')));

function trimResult(toTrim) {
return toTrim.then(function(val){
return val.trim();
});
};

编辑: 然而,push() 函数不会等待返回来自 trimResult() 函数的 promise 。这是有关如何推送值的示例 -

element(by.id(fieldName2)).getAttribute('value').then(function(val){
browser.params.updatedValues.push(val.trim());
});

trimResult(element(by.id(fieldName2)).getAttribute('value'));

function trimResult(toTrim) {
toTrim.then(function(val){
browser.params.updatedValues.push(val.trim());
});
};

希望对您有所帮助。

关于javascript - Trim 不是 Protractor 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com