如何在Node.js中启用wdio.ps1脚本并解决执行权限报错问题
解决PowerShell阻止wdio.ps1脚本运行的问题
我之前也碰到过一模一样的问题,这其实是Windows PowerShell的执行策略在搞鬼——默认情况下它会阻止未签名的脚本运行,刚好wdio的ps1脚本没经过数字签名,所以就触发了这个安全限制。下面是具体的解决步骤,亲测有效:
第一步:打开管理员权限的PowerShell
首先得确保你是用管理员身份打开PowerShell,不然改执行策略会报错没权限。方法是:点击Windows开始菜单,搜索PowerShell,右键选择「以管理员身份运行」。
第二步:查看当前执行策略
先确认下当前的限制级别,在管理员PowerShell里输入:
Get-ExecutionPolicy
默认应该会返回Restricted,这就是导致脚本无法运行的原因。
第三步:修改执行策略(两种方案选一个)
方案1:临时生效(仅当前会话)
如果只是临时需要运行这个脚本,不想永久改设置,可以用这个命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
这个设置只会在当前打开的PowerShell窗口生效,关闭后就会恢复原来的限制,安全性更高。
方案2:永久生效(当前用户)
如果以后经常要运行这类本地脚本,可以设置对当前用户永久生效:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
执行的时候会弹出确认提示,输入Y回车确认就行。
这里解释下
RemoteSigned:它允许运行本地创建的脚本,而从互联网下载的脚本必须有数字签名才能运行——既解决了你的问题,又不会过度放开安全限制,比Unrestricted(允许所有脚本)安全得多,不建议用Unrestricted。
第四步:在VS Code终端重新运行命令
设置完之后,关闭VS Code里的当前终端,重新打开一个新的终端,然后再运行:
./node_modules/.bin/wdio config
这时候应该就能正常执行了。
内容的提问来源于stack exchange,提问作者Renu Thakur
相关产品推荐
相关产品推荐

