2012-06-29 90 views
1

在IDE中使用openWindow命令后,我遇到了焦点问题。此问题仅适用于同一测试套件中的第二个测试用例试图与新打开的窗口进行交互的情况。例如,我有一个测试套件包括单独的测试用例执行以下操作:在Selenium IDE中打开新窗口后保持焦点

  1. 登录到站点A
  2. 输入一些交易数据
  3. 提交该交易审批
  4. 打开一个新窗口并登录到站点B
  5. 批准站点B的交易,并关闭窗口
  6. 继续在现场处理事务A

如果我在与“openWindow”相同的测试用例中执行测试用例5“站点B”操作(即,合并测试用例4和5),那么所有命令都会执行而不会出错。如果我在不同的测试用例中执行相同的操作,那么新窗口失去焦点,所有的Selenium命令都会返回到原始窗口。

的这个有趣的部分是试图鉴定和在步骤5

在测试情况下5个会导致错误消息“窗口不存在执行“selectWindow名= siteB_URL”重新选择“新”的窗口。如果这看起来像一个硒臭虫...“。

然后,我想我会调用storeAllWindowNames并回显结果,至少可以看到Selenium在各个点都知道的窗口名称。如果我将它作为测试用例4中的最后两条命令,我会得到预期的结果 - 记录“echo,siteB_URL”。如果我在测试用例五的前两行做同样的事情,我会得到“回声”。这是让我感受到的部分 - 只是改变测试用例似乎失去了对新窗口的引用。

有没有人想过在Selenium IDE中解决这个问题的方法或解决方案?

我已经花了几个小时今早冲刷网络和各种论坛寻找建议无济于事。

由于提前,

格伦

12年4月7日 - 更新 - 这里的上述场景的一个简单的例子:

[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. 
+0

我有同样的问题。你是否解决了这个问题,还是仍然存在问题?请分享您的经验! – herry

回答

0

你有使用下面的命令检查呢?

selectFrame | relative=up 
selectFrame | iframe name 
+0

问题在于,从一个测试用例移动到另一个测试用例时,Selenium会丢失对新打开的窗口的引用。从我可以告诉的是,这是SEL-572和/或SEL-703的一个症状,两者都在2009年提出并且仍然是开放的。我不相信selectFrame在这里实现了任何东西 –

+0

这个问题可以通过创建一个包含两个测试用例的测试套件来复制 - 第一个只是做一个openWindow,第二个做一个selectWindow。如果有人在测试用例2中找到了与新窗口交互的方法,那么他们将成为真正的冠军和天才! –

0

尝试用选项:

selectWindow() 

()只需提供窗口标题名称。

对于防爆: 窗口标题是测试,然后

command : selectWindow 
title : Testing 

要知道,新打开的窗口的标题遵循的步骤:

转到新窗口

右键单击 - >查看页面源

按下ctrl + F。

输入标题和搜索。

您会看到新窗口的标题。

我希望这有助于... 感谢 Sathiya

相关问题