1、弹窗种类

  • 警告类弹alert(),显示带有一段消息和一个【确认】按钮的警告框。。
    在这里插入图片描述
  • 确认类弹窗confirm(),显示带有一段消息以及【确认】按钮和【取消】按钮的对话框。
    -
  • 消息类弹窗prompt(),需要输入一些信息,比如用户密码等,下方会有【确认】和【取消】按扭
name=prompt("请输入您的名字","锄禾")

在这里插入图片描述

2、弹窗上元素的处理

2.1 selenium2.0的处理

  • 获取弹窗的对象
alert=driver.switch_to_alert()
  • 操作弹窗上的元素
alert.text						#获取弹框上的文本内容
alert.accept()					#点击确认按钮
alert.dismiss()					#点击取消按钮
alert.sendkeys("锄禾")			#向弹窗的输入框中录入内容
  • 示例如下
from selenium import webdriver
from time import sleep

driver=webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_link_text("设置").click()
sleep(3)
driver.find_element_by_link_text("搜索设置").click()
sleep(3)
driver.find_element_by_link_text("保存设置").click()
sleep(3)
#处理警告窗口
alert=driver.switch_to_alert()
#获取弹窗上的文本内容
txt=alert.text
print(txt)
#点击确认按钮
alert.accept()
#点击取消按钮
#alert.dismiss()
sleep(5)
driver.quit()

2.2 selenium3.0的处理

  • 兼容selenium2.0的处理方法
  • 操作弹窗上的元素
driver.switch_to.alert.text                 #获取弹窗上的文本内容
driver.switch_to.alert.accept()             #点击确认按钮
driver.switch_to.alert.dismiss()            #点击取消按钮
driver.switch_to.alert.send_keys("锄禾")    #弹窗的文本框录入内容  
  • 示例如下
from selenium import webdriver
from time import sleep

driver=webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_link_text("设置").click()
sleep(3)
driver.find_element_by_link_text("搜索设置").click()
sleep(3)
driver.find_element_by_link_text("保存设置").click()
sleep(3)

# #处理警告窗口
driver.switch_to.alert.text                 #获取弹窗上的文本内容
driver.switch_to.alert.accept()             #点击确认按钮
sleep(5)
driver.quit()

3、判断是否弹窗

from selenium.webdriver.support import expected_conditions as EC
result = EC.alert_is_present()(driver)
if result:
    print result.text
    result.accept()
else:
    print "未弹出!"
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐