我在selenium ide中坚持了一点
场景就像这样
Login-----
go to dashboard page---------
mouse over any menu on the top navigational bar----
on mouseover sub menu will appear as drop down--
now click any link from the drop down --
after clicking link will open in new tab
现在从那时起我们必须将重点转移到新标签上,因为其余的测试将在新标签上完成。
我写的代码如下:
<tr>
<td>open</td>
<td>/magma/dev/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>name=user_id</td>
<td>abcd</td>
</tr>
<tr>
<td>type</td>
<td>name=pass</td>
<td>1234</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=btnLogin</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Costing List</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Fuel</td>
<td></td>
</tr>
<tr>
<td>mouseOver</td>
<td>//div[@id='smoothmenu1']/ul/li[3]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Fuel Cost</td>
<td></td>
</tr>
<tr>
<td>selectWindow</td>
<td>http://10.0.1.101/magma/dev/fuelcost/</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Manage Fuel Cost</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Logout</td>
<td></td>
</tr>
此代码正常工作,直到点击下拉列表中的子菜单后,它不起作用并且日志中显示错误
所以,当我试图运行该测试用例时,它显示错误
[警告]链接的目标是'_blank',Selenium不支持!将目标随机化为:selenium_blank84419
任何人都可以帮我正确编写代码
答案 0 :(得分:10)
以下代码适用于我:
<tr>
<td>storeEval</td>
<td>selenium.getAllWindowNames()[1]</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']);</td>
<td></td>
</tr>
<tr>
<td>selectWindow</td>
<td>${windowName}</td>
<td></td>
</tr>
我希望它会帮助那些面临类似问题的人
答案 1 :(得分:2)
使用selectPopUp
,但不是storeEval
和selectWindow
,两者都太复杂了。
selectPopUp:
参数: windowID - 弹出窗口的标识符,可以采用许多不同的含义
简化选择弹出窗口的过程(并且不提供selectWindow()已经提供的功能)。
下面的代码(selenium脚本,我从selenium IDE复制)表明了以下行为:
1.点击“编辑”链接
2.等待2秒钟(等待新窗口打开)
3.专注于新窗口
<tr>
<td>click</td>
<td>link=edit</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>2000</td>
<td></td>
</tr>
<tr>
<td>selectPopUp</td>
<td></td>
<td></td>
</tr>
答案 2 :(得分:1)
<tr>
<td>selectWindow</td>
<td>http://10.0.1.101/magma/dev/fuelcost/</td>
<td></td>
</tr>
将<td>http://10.0.1.101/magma/dev/fuelcost/</td>
替换为window ID
或window title
或window name
答案 3 :(得分:1)
尝试选项 selectWindow() 只需提供带有()的窗口标题名称。 对于Ex: 窗口标题正在测试,然后 命令:selectWindow 标题:测试
要了解新打开的窗口的标题,请按照以下步骤操作: 转到新窗口 右键单击 - &gt;查看页面源 按ctrl + F. 输入标题和serch。 您将获得新窗口的标题
答案 4 :(得分:1)
我希望这有助于那里的人!它对我很有用。您仍然会在日志中收到警告,但测试有效。
答案 5 :(得分:1)
单击新标签事件后,请添加waitForPopUp和selectPopUp事件。这对我有用。
答案 6 :(得分:0)
我正在使用以下内容,它适用于我,希望它有所帮助! :)
storeEval | this.browserbot.findElement('link=link name').href | myUrl |
open | ${myUrl}
答案 7 :(得分:0)
我使用storeAttribute
与open
组合。
我这样用:
答案 8 :(得分:0)
作为替代方案,可以在单击之前从链接中删除目标属性。以下是从当前页面上的所有链接中删除所有目标属性的代码:
<tr>
<td>runScript</td>
<td>Array.from(document.links).forEach(function(link){link.removeAttribute('target')})</td>
<td></td>
</tr>