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

vfugit 发布于 2019-03-09 perl 最后更新 2019-03-09 14:37 0 浏览

我想为以下方案提供解决方案: 在一个页面中,我上传了一个xml文件,同时点击上传按钮,我将收到一个确认弹出窗口(我能够检测到这个),然后我又收到一个弹出窗口,我无法检测到(页面仍然在浏览器中加载)。请帮我解决这个问题。 我已经尝试了许多解决方案,例如:获取窗口ID,标题。 谢谢

已邀请:

afuga

赞同来自:

我发现问题是什么@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 感谢您的支持....

vanimi

赞同来自:

你可以使用 -

$sel->get_confirmation()
这将检索在上一个操作期间生成的JavaScript确认对话框的消息。默认情况下,confirm函数将返回true,具有相同的效果,手动单击OK。这可以通过事先执行thechooseCancelOnNextConfirmation命令来改变。如果生成确认但您未获得/验证它,则下一个Selenium操作将失败。 注意:在Selenium下,JavaScript确认不会弹出可见的对话框。 注意:Selenium不支持在页面的onload()事件处理程序中生成的JavaScript确认。在这种情况下,将生成visibledialog并且Selenium将挂起,直到您手动单击OK。 返回最新JavaScript确认对话框的消息。 在使用perl和RC时,您应始终参考WWW::Selenium - Perl Client

dsed

赞同来自:

我的解决方案是使用该功能: $driver->execute_script("Events.invokeEvent('UserDetailPage:UserDetailScreen:UserDetailToolbarButtonSet:UserDetailToolbarButtons_DeleteUserButton_act', true);"); 分析按下“接受”按钮时javascript代码的作用。并在函数中执行该代码。