如何阻止VSCode自动为WebdriverIO和Mocha.js代码添加括号?
关闭VSCode自动添加括号功能解决WebdriverIO测试问题
关闭自动补全时的函数括号自动添加
- 打开VSCode设置:使用快捷键
Ctrl+,(Windows/Linux)或Cmd+,(Mac),或者通过文件 > 首选项 > 设置打开。 - 在设置搜索框输入
javascript.suggest.completeFunctionCalls,取消勾选该选项。如果用TypeScript编写测试,同步取消typescript.suggest.completeFunctionCalls的勾选。 - 设置生效后,输入函数名时VSCode不会自动补全括号和参数占位符。
格式化时的括号自动添加检查
如果是代码格式化过程中自动添加括号,可调整以下设置:
- 搜索
javascript.format.insertParenthesesAroundArrowFunctionParameter,按需关闭(针对箭头函数场景)。 - 搜索
javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions,避免匿名函数被自动添加多余括号。
关于WebdriverIO执行失败的补充
你提到带括号时无法找到元素,大概率是异步模式下未正确处理Promise导致的。WebdriverIO异步API需要配合await使用,正确写法为:
await $('button').click();
如果VSCode自动加了括号但你没加await,会导致Promise未被解析,进而出现元素定位失败。而不带括号时你实际只是获取了click方法的引用,并没有执行点击操作——你说能正常点击,可能是测试环境启用了同步模式(配置中sync: true),此时直接调用方法即可,VSCode自动加括号本身没问题,但如果误将属性识别为方法添加括号,就会引发错误。
内容的提问来源于stack exchange,提问作者emnznlg
相关产品推荐
相关产品推荐

