自动化测试弹框处理
标签(空格分隔): 弹框
切换窗口:
1.在一个网页窗口里面的操作的时候,点点的有时候他会出现一个新的窗口自动化,而不是原来的窗口;
问题:那么在新的窗口里面在继续执行自动化的话,我们要注意什么呢?那么他会不会自动化到新的窗口呢?
答案:肯定是不行的,那我们怎么办呢?
例如如下图:最终的输出还是:newwindwos
webdriver 属性有个属性是:windwos_handles,是保存所有自动化程序打开的浏览器的handles,所以我们要切换到某个窗口,我们可以利用循环,切换handles,切换窗口完了,可以更具对应的窗口的标题栏,来判断,是不是我们打开的网页;
切换到新窗口里面进行操作:
- 循环遍历:driver.windows_handles
- driver.switch_to.window(handle)方法切入新窗口
#保存主窗口的Handle
mainWindow = driver.current_window_handle
print(driver.window_handles)
for handle in driver.window_handles:
#切换到新的窗口
driver.swithch_to.window(handle)
if '百度' in driver.title:
break
kw = driver.find_element_by_id('kw')
kw.send_keys(u'python自动化')
#切换到主窗口
driver.switch_to_window(mainWindow)
driver.find_element_by_tag_name('input').send_keys('helloworld')
input('pass any key to quit......')
driver.quit()
- 检查该窗口特点,是否为要切入的那个;
切换到最初的窗口:
- 保存窗口的handle
关闭窗口:
- close方法
对话框操作:
- 对话弹框一般有3种:
1.alert(只有一种选择)
如下图的alert
2.confirm(有两种选择)
如下图
3.prompt(有两种选择,还要一些输入内容的)
如下图
- 操作方法:
driver.switch_to.alert.accept() #点击OK
driver.switch_to.alert.text # 得到对话框内容
driver.switch_to.alert.dismiss()#点击关闭
driver.switch_to.alert.send_keys()# 输入内容这种就用于上述的图3 的情况
目前我们讲的alert,就是上述的3种,这个alert是浏览器原生的(F12查不了),不是HTML的alert,有的时候,看到的alert按钮比较多,或者比较丰富的页面,这些都是HTML自己的alert
1.如下图的alert,就是HTML元素:(可以按F12可以查看)