我正在执行量角器测试用例,为了避免重复,我想将相同的代码发挥作用。
我需要获取有关需要嵌套功能的特定元素的可见性的信息。
即使此条件为true,也返回false(hiddenCssValue ==“ visible”)
function subEntriesVisibility(elem) {
elem.element(by.className('ct-sub-entries')).getCssValue('visibility').then(function (hiddenCssValue) {
if (hiddenCssValue == "visible") {
return true;
} else {
return false;
}
});
}
即使此条件为真,也返回“”(hiddenCssValue ==“ visible”)
function subEntriesVisibility(elem) {
var res = "";
elem.element(by.className('ct-sub-entries')).getCssValue('visibility').then(function (hiddenCssValue) {
if (hiddenCssValue == "visible") {
res = true;
} else {
res = false;
}
});
return res;
}
如果元素将被隐藏,我只需要获取false;如果可见,则只需获取true。当前,它每次都返回false。例如在第二个区块中,res填充为true或false
答案 0 :(得分:0)
当前,您的return
仅存在于传递给.then
的匿名函数中。为了使用确实值,您需要在return elem.element(...
中subEntriesVisibility
并从那里调用.then
。看看
function subEntriesVisibility(elem) {
return elem.element(by.className('ct-sub-entries'))
.getCssValue('visibility').then(function (hiddenCssValue) {
if (hiddenCssValue == "visible") {
return true;
} else {
return false;
}
});
}
// How to use it
subEntriesVisibility(myElement).then(function(value){
if (value === true) {
// do this
} else {
// do that
}
});
如果您对ES6和async/await
感到满意,那么您的代码可能看起来更简单
function subEntriesVisibility(elem) {
return elem.element(by.className('ct-sub-entries'))
.getCssValue('visibility')
.then((hiddenCssValue) => hiddenCssValue === "visible");
}
// How to use it.
async function run() {
const value = await subEntriesVisibility(myElement);
if (value === true) {
// do this
} else {
// do that
}
}
run();
希望有帮助