0

Selenium IDE我已经.side使用. selenium-side-runner_ Selenium Grid_ 是否可以运行从提交的测试Zalenium调用的命令?我想这样做以将带有测试进度和状态的消息发送回 Zaleniumdriver.manage().addCookie()selenium-side-runner

executeScript我向 Selenium IDE 编辑器添加了一个命令,目标为driver.manage().addCookie({name: 'test', value: 'test'})

我看到 selenium-side-runner 生成的命令commons.js

await driver.executeScript(`driver.manage().addCookie({name:'test', value: 'test'});`);

这样做会导致浏览器报告错误JavascriptError: javascript error: driver is not defined

我认为我需要的是在没有 driver.executeScript 包装器的情况下生成的代码。Selenium IDE有没有办法在不将我的测试导出到的情况下做到这一点NUnit

4

1 回答 1

0

我能够通过粗略地修改selenium-side-runner我的 Windows 开发机器上的包来使这个功能工作

在文件中~\node_modules\selenium-side-runner\node_modules\selianize\dist\selianize.cjs.js

改变

function generateScript(script, isExpression = false) {
  return `await driver.executeScript(\`${isExpression ? `return (${script.script})` : script.script}\`${script.argv.length ? ',' : ''}${script.argv.map(n => `vars["${n}"]`).join(',')});`;
}

function generateScript(script, isExpression = false) {
  if (script.script.indexOf('zalenium') > -1)
  {
    return script.script;
  } else 
  {
    return `await driver.executeScript(\`${isExpression ? `return (${script.script})` : script.script}\`${script.argv.length ? ',' : ''}${script.argv.map(n => `vars["${n}"]`).join(',')});`;
  }
}

现在,当使用 selenium-side-runner 运行测试时,使用包含的任何值调用“executeScript”zalenium将在测试脚本中逐字生成命令

于 2020-07-04T07:19:00.237 回答