在Selenium IDE中打开一个新窗口后保持焦点

时间:2012-06-29 04:00:41

标签: selenium focus selenium-ide

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

  1. 登录网站A
  2. 输入一些交易数据
  3. 提交交易以供审批
  4. 打开一个新窗口并登录B站点
  5. 批准站点B中的交易并关闭窗口
  6. 继续处理网站A中的交易
  7. 如果我在与“openWindow”相同的测试用例中执行测试用例5“站点B”操作(即合并测试用例4和5),那么所有命令都会执行而不会出错。如果我在不同的测试用例中执行相同的操作,则新窗口将失去焦点,所有Selenium命令将被定向回原始窗口。

    这个有趣的部分是尝试在步骤5中识别并重新选择“新”窗口。

    在测试用例5中执行“selectWindow name = siteB_URL”会导致错误消息“Window不存在。如果这看起来像Selenium bug ...”。

    然后我想我会调用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. 
    

3 个答案:

答案 0 :(得分:0)

您是否按照以下命令进行检查?

selectFrame | relative=up
selectFrame | iframe name

答案 1 :(得分:0)

尝试使用选项:

selectWindow()

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

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

command : selectWindow
title : Testing 

要了解新打开的窗口的标题,请按照以下步骤操作:

转到新窗口

右键点击>查看页面来源

按ctrl + F。

输入标题和搜索。

您将获得新窗口的标题。

我希望这会有所帮助...... 谢谢 Sathiya

答案 2 :(得分:0)

//在原始窗口上...

命令:存储窗口句柄

目标:myVar

// ...做什么...

命令:选择窗口

target:handle = $ {myVar}