我想要一个针对以下场景的解决方案:在一个页面中,我正在上传一个 xml,在单击上传按钮时,我将收到一个弹出窗口进行确认(我能够检测到这一点),之后我再次收到一个弹出我无法检测到的(页面仍在浏览器中加载)。请帮我解决这个问题。
我已经尝试过很多解决方案,比如:get window ids,titles。
谢谢
你可以使用 -
$sel->get_confirmation()
这将检索在上一个操作期间生成的 JavaScript 确认对话框的消息。默认情况下,confirm 函数将返回 true,与手动单击 OK 的效果相同。这可以通过事先执行chooseCancelOnNextConfirmation 命令来改变。如果生成了确认但您没有获取/验证它,则下一个 Selenium 操作将失败。
注意:在 Selenium 下,JavaScript 确认不会弹出可见对话框。
注意:Selenium 不支持在页面的 onload() 事件处理程序中生成的 JavaScript 确认。在这种情况下,将生成一个可见对话框,Selenium 将挂起,直到您手动单击确定。
返回最近的 JavaScript 确认对话框的消息。
在使用 perl 和 RC 时,您应该始终参考WWW::Selenium - Perl Client 。
我发现了问题@amey ...我正在尝试上传一个实际上由于firefox的一些安全问题而实际上不允许的文件...实际上这个 http://cakebaker.42dh有一个解决方法.com/2006/03/29/file-upload-with-selenium/ .....由于 Firefox 已删除对 enablePrivilege https://support.mozilla.org/的支持,因此无法与最新的 Selenium RC 和 Firefox 一起使用zh-CN/questions/944433。 所以似乎是转移到WEBDRIVER的任务...... http://git.erp5.org/gitweb/erp5.git/commitdiff/06898bbfae4f238b7e79ce05048646529216064e 感谢您的支持... .
我的解决方案是使用以下功能:
$driver->execute_script("Events.invokeEvent('UserDetailPage:UserDetailScreen:UserDetailToolbarButtonSet:UserDetailToolbarButtons_DeleteUserButton_act', true);");
分析按下接受按钮时 javascript 代码的作用。并在函数中执行该代码。