使用perl使用selenium处理弹出窗口

时间:2013-04-11 16:17:48

标签: perl selenium popup

我想要一个针对以下场景的解决方案: 在一个页面我上传一个xml,同时点击上传按钮,我将收到一个弹出窗口进行确认(我能够检测到这一点),在此之后我再次收到一个我无法检测到的弹出窗口(该页面仍在浏览器中加载)。请帮我解决这个问题。

我尝试过许多解决方案,例如:获取窗口ID,标题。

由于

3 个答案:

答案 0 :(得分:1)

你可以使用 -

$sel->get_confirmation()

这将检索在上一个操作期间生成的JavaScript确认对话框的消息。默认情况下,confirm函数将返回true,具有相同的效果,手动单击OK。这可以通过事先执行thechooseCancelOnNextConfirmation命令来改变。如果生成确认但您未获得/验证它,则下一个Selenium操作将失败。

注意:在Selenium下,JavaScript确认不会弹出可见的对话框。

注意:Selenium不支持在页面的onload()事件处理程序中生成的JavaScript确认。在这种情况下,将生成visibledialog并且Selenium将挂起,直到您手动单击OK。

返回最新JavaScript确认对话框的消息。

在使用perl和RC时,您应始终参考WWW::Selenium - Perl Client

答案 1 :(得分:0)

我发现问题是什么@amey ...我想上传一个实际上不被允许的文件,因为firefox存在一些安全问题...实际上有一个解决方法 http://cakebaker.42dh.com/2006/03/29/file-upload-with-selenium/ .....由于firefox删除了对enablePrivilege的支持,因此最新的Selenium RC与Firefox不兼容 https://support.mozilla.org/en-US/questions/944433. 所以它的任务是转移到WEBDRIVER似乎............. http://git.erp5.org/gitweb/erp5.git/commitdiff/06898bbfae4f238b7e79ce05048646529216064e 谢谢你的支持......

答案 2 :(得分:0)

我的解决方案是使用函数:

$driver->execute_script("Events.invokeEvent('UserDetailPage:UserDetailScreen:UserDetailToolbarButtonSet:UserDetailToolbarButtons_DeleteUserButton_act', true);");

分析按下“接受”按钮时javascript代码的作用。并在函数中执行该代码。