在开发Selenium扩展时,我有脚本来验证对失败案例的正确处理。不幸的是,我必须在IDE中逐个执行这些命令,并手动检查每个错误消息。我想要做的是定义一个自定义的Selenium命令,我可以在每个命令故意以某种方式失败之前插入它。例如:willFail | expected-error-text。
换句话说,我想改变Selenium命令完成行为,这样如果下一个命令抛出给定的错误消息,那么结果就是成功并且脚本继续。但如果成功或抛出不同的错误,则脚本会因错误而停止。
我想这将涉及设置观察者功能和/或拦截Selenium功能。我希望问题是:
PowerDebugger扩展允许您在发生故障时暂停IDE,然后继续。所以我怀疑那里的方法是什么。但我无法弄清楚它是如何与Selenium命令处理挂钩的。 Samit Badle,你在外面吗?
我使用的是Selenium IDE 2.2.0。
答案 0 :(得分:0)
通过一些实验,我发现函数TestLoop.resume()
负责确定每个命令的结果。
它在chrome/content/selenium-core/scripts/selenium-executionloop.js
中定义。
此函数执行命令,并停止脚本或允许其继续。
要更改此行为,Selenium扩展可以使用自定义版本临时替换此功能。要完成此操作,请保存editor.selDebugger.runner.IDETestLoop.prototype.resume
的引用,并将其替换为自定义函数。然后,自定义函数应该恢复本机函数,并根据需要执行命令执行。