我正在用JavaScript为WebdriverIO构建一个自动化框架.
"开箱即用"错误消息没有太大帮助,我想将类名和方法名作为前缀添加到错误消息中,该错误消息在方法/函数失败时抛出.
我已经设法用ClassName.name
个字母来称呼这个班
然而,我还没有找到一种不使用硬编码值就引用方法名的解决方案.
下面是我想做的更改的摘要.
之前:
setElementValue(element, value){
try{
this.waitForElementAndScroll(element);
$(element).setValue(value);
}
catch(error){
throw `${BasePage.name}.setElementValue: ${error.message}`;
}
}
之后:
setElementValue(element, value){
try{
this.waitForElementAndScroll(element);
$(element).setValue(value);
}
catch(error){
throw `${BasePage.name}.${setElementValue.name}: ${error.message}`;
}
}
其中${setElementValue.name}
是引用方法/函数名称的方法.
非常感谢!
我try 过以下方法,但没有成功:
method.name //ReferenceError: method is not defined
(method).name //ReferenceError: method is not defined
Function.name //Returns "Function"
Function.value //Returns "undefined"
constructor.name //Returns "Object"
setElementValue.name //ReferenceError: setElementValue is not defined