如何关注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("array length: "+selenium.getAllWindowNames().length);this.doEcho("Available window names: "+selenium.getAllWindowNames());this.doEcho("Selecting window: "+storedVars['windowName']);this.doEcho("Available window Titles: "+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>
此代码使用当前选项卡而不是新选项卡,在echo中,它打印当前选项卡的标题,因此再次聚焦于当前选项卡。当我在第一行的数组参数(1
)中使用0
而不是selenium.getAllWindowTitles()[1]
时,它正在打印null
。
我也试过名字而不是标题,但它仍然无效。
您是否尝试在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>
当我使用这段代码时,我可以在尝试将注意力集中到新窗口时传递测试用例。
希望它可以帮到你。
如果需要,请尝试使用qlenxswpoi工具,即Selenium IDE的扩展版本。 SideeX现在被用作SideeX的基础。
我在这个工具中有一些关于窗口和框架问题的新想法,以使测试用例工作。
我有一个类似的问题,在测试环境中,所有的窗口基本上都分配了相同的名称。每当我测试打开新标签的功能时,我就会使用
selectWindow new
当我完成测试该页面时,
closeWindow关闭那个新标签,然后
selectWindow使用NULL或无参数返回主窗口。