Selenium Python:与系统模式对话框交互
我正在浏览器中运行应用程序;对于一些动作,我能够用按键模拟动作;但我有一个特殊的问题:我的应用程序中的一些操作会导致系统提示弹出,例如保存或确认退出 在Selenium python中有没有控制这些的方法?例如,想象使用按键来保存页面;然后出现系统对话框(它不是web应用程序的一部分),询问您将文件保存到哪里。或者想象一下,当您打开多个选项卡时,会出现提示,询问您是否确定要关闭浏览器窗口Selenium Python:与系统模式对话框交互,python,selenium,Python,Selenium,我正在浏览器中运行应用程序;对于一些动作,我能够用按键模拟动作;但我有一个特殊的问题:我的应用程序中的一些操作会导致系统提示弹出,例如保存或确认退出 在Selenium python中有没有控制这些的方法?例如,想象使用按键来保存页面;然后出现系统对话框(它不是web应用程序的一部分),询问您将文件保存到哪里。或者想象一下,当您打开多个选项卡时,会出现提示,询问您是否确定要关闭浏览器窗口 我确实尝试过寻找一个不同的窗口,假设我可以在浏览器中的窗口之间切换上下文,但在主应用程序旁边找不到任何内容,
我确实尝试过寻找一个不同的窗口,假设我可以在浏览器中的窗口之间切换上下文,但在主应用程序旁边找不到任何内容,因为这些是系统窗口。有解决方法吗?您可以使用Selenium方法检查当前窗口并移动到另一个窗口: 你可以用
driver.window_handles
要查找窗口句柄列表,请尝试使用以下方法切换()
驱动程序。切换到报警()
driver.switch\u至.active\u元件
驱动程序。切换到默认内容
driver.切换到.window
for item in driver.find_elements_by_class_name("products"):
item.click() # clicking on item activate a popup
driver.switch_to_alert() #switch to new window
# Get data
driver.find_elements_by_css_selector(".ui-dialog-titlebar-close.ui-corner-all")[0].click() #close window
如果您谈论的是系统对话框,那么就不可能使用selenium与它们交互
但是,对于浏览器弹出窗口(警报),只需导航到弹出窗口:
driver.switch_to_alert()
然后,使用警报
类中的方法与弹出窗口交互。警报
类包含用于解除、接受、输入和从警报提示中获取文本的方法
一些例子:
Alert(driver).accept()
Alert(driver).dismiss()
Alert(driver).authenticate()
Alert(driver).send_keys(keys_to_send)
Alert(driver).text()
见: