首页 > 解决方案 > 总结许多连续 if(x typeof !=='unedfined') 查询的最佳方法?

问题描述

我用 JavaScript 和 Selenium 编写测试脚本,我想查询,如果给出了可选参数,如果是,那么使用它们,如果没有,跳过它们。

/*optional parameter are: day, month, year, comment*/

if( typeof day !== 'undefined') {
entryField.sendKeys(day);
}

if( typeof year!== 'undefined') {
entryField.sendKeys(year);
}

if( typeof month!== 'undefined') {
entryField.sendKeys(month);
}

if( typeof comment !== 'undefined') {
entryField.sendKeys(comment);
}

那看起来非常难看。有更好的方法吗?参数是从外面给的,所以如果我不做这个typeof-Query,就会出现引用错误,因为它们没有定义。

标签: javascriptselenium

解决方案


我认为,棘手的部分是变量day等可能在这部分代码之前甚至不存在。因此,为避免出现错误,一种可能的方法是使用eval,如下所示:

var para = ["day", "year", "month", "comment"];
for(let p of para) {
    if(eval("typeof "+p) !== 'undefined') {
        entryField.sendKeys(eval(p));
    }
}

推荐阅读