0

在开发 Selenium 扩展时,我编写了脚本来验证对故障情况的正确处理。不幸的是,我必须在 IDE 中一个接一个地执行这些命令,并手动检查每个错误消息。我想做的是定义一个自定义的 Selenium 命令,我可以在每个故意以给定方式失败的命令之前插入该命令。例如:willFail|expected-error-text。

换句话说,我想改变 Selenium 命令完成行为,这样如果下一个命令抛出给定的错误消息,那么结果是成功并且脚本继续。但如果它成功或引发不同的错误,则脚本会因错误而停止。

我想这将涉及设置观察者函数和/或拦截 Selenium 函数。我希望问题是:

  • 如何/在哪里进行初始化。相关的 Selenium 对象可能很难找到。
  • 什么/什么时候返回以改变结果。
  • 通过更改结果是否还有其他不同步的内容?

PowerDebugger 扩展允许您在出现故障时暂停 IDE,然后再恢复。所以我怀疑操作方法在某个地方。但我不太清楚它是如何与 Selenium 命令处理挂钩的。Samit Badle,你在外面吗?

我正在使用 Selenium IDE 2.2.0。

4

1 回答 1

0

通过一些实验,我发现该函数TestLoop.resume()负责确定每个命令的结果。它定义在chrome/content/selenium-core/scripts/selenium-executionloop.js. 这个函数执行命令,或者暂停脚本,或者允许它继续。

为了改变这种行为,Selenium 扩展可以临时用自定义版本替换这个函数。为此,请保存 的引用editor.selDebugger.runner.IDETestLoop.prototype.resume,并将其替换为自定义函数。然后自定义函数应该恢复本机函数,并酌情执行命令。

于 2013-09-03T23:32:08.330 回答