【发布时间】:2025-12-17 16:15:02
【问题描述】:
我正在使用 Python 和 Selenium 在 Internet Explorer 中编写自动化脚本。
当网页弹出某种模式对话框时,Python 代码停止运行,只是等待对弹出窗口采取一些操作。按“是”或“否”按钮后,Python 代码将继续。
我相信被调用的底层 Javascript 函数 (saveClicked()) 正在使用这行代码生成弹出框: var result=window.showModalDialog('whatever....')
有谁知道如何在 Selenium 中处理这个问题?我希望我的代码在此窗口中单击“确定”或只是接受它。我尝试右键单击窗口查看源代码等,但这些选项没有提供给我……唯一的选项是“移动/关闭”。
我查看了 Selenium 中是否有某种默认的 IE 功能,它会自动接受所有模式对话框,但没有找到。我还考虑过用某种方式包装对 Javascript 函数的调用,以某种方式向警报发送击键。我对任何事情都持开放态度!
这是代码:它永远不会超过 .execute_script 行...它只是坐在那里等待。
print('Saving')
# I have to do this because I can't get the handle to the save button
# using any of the known Selenium methods but calling the JS works
driver.execute_script('saveClicked();')
print('Test')
driver.switch_to().alert().send_keys(Keys.ENTER)
代码在 Javascript 执行后停止,永远不会移动到 print('test') 行或我放在那里的任何其他代码。
任何解决此问题的 python selenium 代码建议将不胜感激。
【问题讨论】:
-
请分享一个可重现的最小示例!
标签: python selenium automation modal-dialog popup