我想要一个针对以下场景的解决方案: 在一个页面我上传一个xml,同时点击上传按钮,我将收到一个弹出窗口进行确认(我能够检测到这一点),在此之后我再次收到一个我无法检测到的弹出窗口(该页面仍在浏览器中加载)。请帮我解决这个问题。
我尝试过许多解决方案,例如:获取窗口ID,标题。
由于
答案 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代码的作用。并在函数中执行该代码。