具体来说,当我向框架内的对象提供命令和 XPath 时,IDE 可以与对象交互,而无需执行“selectFrame”命令。当我在 WebDriver 执行中运行相同的命令序列时:
| waitForVisible | target |
| click | target |
WebDriver 生成一个堆栈跟踪,指示该对象不可见且无法与之交互。我必须通过以下附加步骤更新我的脚本:
| selectFrame | frame |
| waitForVisible | target |
| click | target |
IDE 是否使用某种类似于 RC 的 Javascript 注入(inject)来模拟 IDE 中的命令?
最佳答案
IDE 和网络驱动程序遵循相似的编码路径,但并不完全相同。因此,命令可能始终完全同步,具体取决于版本。我们遇到了一个问题,我们的 IDE 能够在测试套件中的测试之间传递变量,但我们的独立版本 (2.37) 不支持此功能(它支持 2.38+)。
然而,WebDriver 也使用 native 命令并摆脱了 Javascript 注入(inject),这实际上在某些方面为您提供了更多的权力(避免单一主机来源政策)。
关于java - 为什么我改进的 Selenium IDE 脚本在 Selenium WebDriver 执行中表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21140383/