在 IDE 中使用 openWindow 命令后,我无法保持焦点。此问题仅适用于同一测试套件中的第二个测试用例尝试与新打开的窗口进行交互时。例如,我有一个由单独的测试用例组成的测试套件来执行以下操作:
- 登录站点 A
- 输入一些交易数据
- 提交交易以供批准
- 打开一个新窗口并登录到站点 B
- 批准站点 B 中的交易并关闭窗口
- 继续处理站点 A 中的事务
如果我在与“openWindow”相同的测试用例中执行测试用例 5“站点 B”操作(即合并测试用例 4 和 5),则所有命令都会执行而不会出错。如果我在不同的测试用例中执行相同的操作,那么新窗口将失去焦点,所有 Selenium 命令都将被定向回原始窗口。
有趣的部分是尝试在步骤 5 中识别并重新选择“新”窗口。
在测试用例 5 中执行“selectWindow name=siteB_URL”会导致错误消息“窗口不存在。如果这看起来像 Selenium 错误...”。
然后我想我会调用 storeAllWindowNames 并回显结果,以至少查看 Selenium 在各个点知道的窗口名称。如果我在测试用例 4 中作为最后两个命令执行此操作,我会得到预期的结果 - 记录“echo ,siteB_URL”。如果我在测试用例 5 中做与前两行相同的事情,我会得到“echo”。这是让我感到兴奋的部分 - 简单地更改测试用例似乎失去了对新窗口的引用。
有没有人在 Selenium IDE 中提出解决此问题的解决方法或解决方案?
今天早上我花了几个小时在网上和各种论坛上寻找建议,但无济于事。
提前致谢,
格伦
4-7-12 - 更新 - 这是上述场景的简化示例:
[info] Executing: |openWindow | http://www.google.com.au | google2 |
[info] Executing: |selectWindow | google2 | |
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo: ,google2
[info] Changed test case
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo:
[info] Executing: |selectWindow | name=google2 | |
[error] Window does not exist. If this looks like a Selenium bug, make sure to read http://seleniumhq.org/docs/04_selenese_commands.html#alerts-popups-and-multiple-windows for potential workarounds.