javascript - 如何在 Protractor 测试中执行 powershell 脚本?

标签 javascript node.js typescript protractor

我正在尝试在 Protractor 测试中执行 powershell 脚本

Protractor 规范

 it("Should Execute Powershell Script", async () => {
    browser.get('http://mywebsite.com')
       var spawn = require('child_process').spawn;
       var child = spawn('powershell.exe', ['-noexit', './test.ps1']);
});

测试.ps1

$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Chrome')
$wshell.SendKeys('Ganesh Hegde')
$wshell.SendKeys("{ENTER}")

powershell 脚本没有执行,你能帮帮我吗?

最佳答案

以下是我如何让它与 async 一起工作。

SELENIUM_PROMISE_MANAGER: false 添加到您的配置中。

然后使用 spawnSync 而不是 spawn

const { browser } = require('protractor');
const { spawnSync } = require('child_process');

describe('spawn test', () => {
  it('should execute powershell script', async () => {
    await browser.get('https://google.com')
    await spawnSync('powershell.exe', ['-noexit', './test.ps1']);
  });
});

这运行了脚本,但它看起来不像 -noexit 正在运行。我可以看到输入到搜索输入中的文本,结果只弹出一秒钟,然后脚本退出。

关于javascript - 如何在 Protractor 测试中执行 powershell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630049/

相关文章:

javascript - ExtJS:如何在函数内更改组件 `labelStyle`?

node.js - 表达多个回调在 app.get 中的工作方式

angular - 如何从 Observable 内部返回 Observable

javascript - 如何将 promise 连接到这条链?

javascript - 将选项放在下拉框中

javascript - 为什么父元素上的 preventDefault() 单击 'disable' 复选框?

javascript - 使用 jquery 和数据库检查更改

node.js - iisnode 不会运行 Express

javascript - 我应该如何将 ngResource 与特定的响应主体一起使用?

angular - 加载 angular2-datatable 时找不到 404