【问题标题】:Problem with Pop-up Windows using Selenium使用 Selenium 弹出窗口的问题
【发布时间】:2009-12-11 07:59:09
【问题描述】:
我是测试领域的新手,所以我的问题可能看起来有点太天真和愚蠢。冒着看起来/听起来很愚蠢的风险,我的问题是:
我一直在尝试在我公司的网络应用程序的弹出窗口中测试内容。我现在已经想出了如何检测弹出窗口,但我无法让 selenium “单击”该弹出窗口内的链接。这个网络应用中有多个弹出窗口,所以对于喜欢创建测试用例的新手来说真的很难。
我尝试了 click、clickAndWait、mouseDown 和 mouseKey 作为选项,但仍然无法正常工作。有人可以指导我吗?
TIA,
安吉拉
【问题讨论】:
标签:
windows
selenium
popup
【解决方案1】:
当弹出窗口出现时,您需要将脚本的上下文移动到窗口中。
您可以使用selectWindow | window_ID_from_the_link 执行此操作,然后单击。
如果这不起作用,您可能需要使用 openWindow 命令创建弹出窗口,然后开始针对它进行测试。
【解决方案2】:
根据您使用的弹出窗口的类型使用 getConfirmation/getassert/getprompt .....默认情况下,服务器将使用 ok 选项单击它们,您必须将弹出窗口中的消息用于其他硒命令正常工作......
上面的建议是根据我使用 perl 使用 selenium RC 的经验给出的......
【解决方案3】:
也许你可以试试 FireFox 插件。您可以点击您的应用程序并记录您的步骤。记录步骤后,您可以轻松地将其保存为某种文件或单元测试。
我不确定你应该为弹出窗口使用什么命令,也许 firefox 插件会以这种方式提供帮助(它会创建你的命令)。
【解决方案4】:
如果您使用 div 标签创建了弹出窗口,您可以使用以下代码停止 selenium 服务器,直到弹出窗口打开。
int second = 0;
while(!selenium.IsElementPresent(mylink))
{
if(second >= 5)
break;
Thread.Sleep(1000);
second++;
}
弹出窗口打开后,现在您可以单击弹出窗口中的任何链接。您必须使用以下代码。
selenium.click("id=popup_link"); (popup_link is the id of the link present on the popup)
祝你好运。
【解决方案5】:
不确定这是否是您要查找的内容,但如果您想单击 Selenium 无法处理的特定内容 - 例如浏览器弹出窗口或其他弹出窗口,您可以使用 Sikuli 脚本。 Sikuli 进行图像比较并点击相同 - 这非常强大。
这里是链接:http://www.sikuli.org/