Selenium IDE中的切换选项卡

时间:2016-12-06 05:27:26

标签: selenium firefox selenium-ide

如何关注Selenium IDE中新打开的窗口?

我点击了一个链接,系统会打开一个新标签页。但是我无法将焦点转移到新窗口。

我尝试了this other SO answer,但它仍无效。

以下是我尝试过的代码:

<tr>
    <td>storeEval</td>
    <td>selenium.getAllWindowTitles()[0]</td>
    <td>windowName</td>
</tr>
<tr>
    <td>getEval</td>
    <td>this.doEcho(&quot;array length: &quot;+selenium.getAllWindowNames().length);this.doEcho(&quot;Available window names: &quot;+selenium.getAllWindowNames());this.doEcho(&quot;Selecting window: &quot;+storedVars['windowName']);this.doEcho(&quot;Available window Titles: &quot;+selenium.getAllWindowTitles());</td>
    <td></td>
</tr>
<tr>
    <td>echo</td>
    <td>${windowName}</td>
    <td></td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>title=${windowName}</td>
    <td></td>
</tr>

此代码使用当前选项卡而不是新选项卡,并且在回显中它正在打印当前选项卡的标题,因此再次聚焦于当前选项卡。当我在第一行的数组参数(1)中使用0而不是selenium.getAllWindowTitles()[1]时,它正在打印null

我也尝试使用名称而不是标题,但它仍然不起作用。

2 个答案:

答案 0 :(得分:1)

您是否尝试在waitForPopUp之前添加命令selectWindow

当我尝试使selectWindow命令工作时,这就是我的测试用例的代码:

<tr>
    <td>click</td>
    <td>link=Named window by hyperlink</td>
    <td></td>
</tr>
<tr>
    <td>waitForPopUp</td>
    <td></td>
    <td>30000</td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>name=namedWindowByHyperlink1</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=Named window by hyperlink</td>
    <td></td>
</tr>
<tr>
    <td>waitForPopUp</td>
    <td></td>
    <td>30000</td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>name=namedWindowByHyperlink2</td>
    <td></td>
</tr>
<tr>
    <td>verifyText</td>
    <td>css=p</td>
    <td>Test was completed.</td>
</tr>

当我使用此代码时,我可以在尝试将焦点转移到新窗口时传递测试用例。

希望它可以帮助你。

如果需要,请尝试使用工具SideeX,即Selenium IDE的扩展版本。 SideeX现在被用作'The Next Generation' of Selenium IDE的基础。

我对此工具中的窗口和框架问题有一些新想法,以使测试用例有效。

答案 1 :(得分:0)

我有一个类似的问题,在测试环境中,所有的窗口基本上都分配了相同的名称。每当我测试打开新标签的功能时,我只使用

selectWindow new

当我完成测试该页面时,

closeWindow关闭该新标签,然后

selectWindow使用NULL或无参数返回主窗口。