selenium弹出框定位处理
弹窗类型:弹出框有两种:
页面弹出框(可定位元素能操作)----div……
Windows弹出框(不能直接定位)----alert,confirm,prompt……
一.页面弹出框
div弹窗不需要切换iframe,元素需要二次定位,python写法为:
driver.find_element_by_class_name("tang-pass-footerBar").find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
实例如下:打开百度---登录---用户名登录---账号/密码---登录
selenium提供switch_to.alert方法:捕获弹出对话框(可以定位alert、confirm、prompt对话框)
switch_to.alert --定位弹出对话框
text() --获取对话框文本值
accept() --相当于点击“确认”
dismiss() --相当于点击“取消”
send_keys() --输入值(alert和confirm没有输入对话框,所以就不用能用了,只能使用在prompt里)
二.windows弹出框
处理弹出窗口:
alert --> 只有确定
comfirm --> 有确定,有取消
propmpt --> 有确定,有取消,还可以输入值
处理方法:
access: 点击确定 ; dismiss 点击取消 ; text 获得文本; send_keys 输入值
1.定位alert弹出框
注意:获取alert弹出框时使用 x = m.switch_to.alert,而不是 x = m.switch_to.alert(),否则会提示错误:TypeError: 'Alert' object is not callable(对象不能用函数形式调用)
2.定位confirm弹出框
alert =driver.switch_to.alert
alert.dismiss()
3.定位prompt弹出框
alert =driver.switch_to.alert
alert.send_keys("python")
alert.accept()