selenium+Python(alert 、confirm 、prompt 的处理)
alert\confirm\prompt 弹出框操作主要方法有:
- text 返回 alert/confirm/prompt 中的文字信息
- accept 点击确认按钮
- dismiss 点击取消按钮,如果有的话
- send_keys 输入值,这个 alert\confirm 没有对话框就不能用了,不然会报错。
在实际的应用中,我们会碰到各种交互的弹窗,在上面百度搜索设置的例子中,我们用
switch_to_alert() 处理警告框非常简单;其实,对于原生的 js alert 、confirm 以及 prompt
都可以通过 webdriver 的 switch_to_alert()方法进行处理
1、alert 操作
1.先用 switch_to_alert()方法切换到 alert 弹出框上
2.可以用 text 方法获取弹出的文本 信息
3.accept()点击确认按钮
4.dismiss()相当于点右上角 x,取消弹出框
#接受警告信息 alert = driver.switch_to_alert() alert.accept() #得到文本信息打印 alert = driver.switch_to_alert() print alert.text() #取消对话框(如果有的话) alert = driver.switch_to_alert() alert.dismiss() #输入值 alert = driver.switch_to_alert() alert.send_keys(“xxx”)
下面以操作百度的设置为例:
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time #访问百度 driver=webdriver.Firefox() driver.get("http://www.baidu.com") #鼠标悬停在设置上,并展示后面的操作 link=driver.find_element_by_link_text('设置') ActionChains(driver).move_to_element(link).perform() driver.find_element_by_link_text("搜索设置").click() #保存设置 driver.find_element_by_class_name("prefpanelgo").click() time.sleep(3) #跳转进入对话框 alert=driver.switch_to_alert() # 打印警告框文字 print alert.text() #接受弹出的对话框 alert.accept() #alert.dismiss()相当于点右上角 x,取消弹出框 driver.close()
2、confirm操作
1.先用 switch_to_alert()方法切换到 alert 弹出框上
2.可以用 text 方法获取弹出的文本 信息
3.accept()点击确认按钮
4.dismiss()相当于点取消按钮或点右上角 x,取消弹出框
3、 prompt 操作
1.先用 switch_to_alert()方法切换到 alert 弹出框上
2.可以用 text 方法获取弹出的文本 信息
3.accept()点击确认按钮
4.dismiss()相当于点右上角 x,取消弹出框
5.send_keys()这里多个输入框,可以用 send_keys()方法输入文本内容