【Python自动化测试】:弹窗的处理

1、背景

  • 有些页面弹出框,如果不处理,就无法做后续操作

2、弹窗的分类

2.1 警告提示弹窗

  • 【描述】:包含提示信息和【确认】按钮
  • 【操作】:1、获取弹窗内容;2、进行“确认”操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、进行确认操作:driver.switch_to.alert.accept()
  • 【代码实现】
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 导入鼠标操作的包
from selenium.webdriver.common.action_chains import ActionChains
# 导入显示元素等待的包
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 定义一个谷歌浏览器对象
driver = webdriver.Chrome()
# 打开百度首页
driver.get('https://www.baidu.com')

# 定位到页面的“设置”元素,并使得光标悬浮在该元素上
element1 = driver.find_element(By.CSS_SELECTOR, '#s-usersetting-top')
ActionChains(driver).move_to_element(element1).perform()
# 点击“设置”元素下拉框中“搜索设置”链接
driver.find_element(By.LINK_TEXT, '搜索设置').click()
# 弹窗的弹出需要时间,元素等待是需要考虑的重要问题
# 显式等待元素方法:等到指定的元素即可开始执行,否则抛出异常
element2 = WebDriverWait(driver, 2, 0.5).until(EC.presence_of_element_located((By.LINK_TEXT, '保存设置')), "保存设置元素定位不到")
# 在弹出的弹窗中点击“保存设置”链接
element2.click()

# 页面停留2秒钟,方便查看效果
time.sleep(2)

# 在弹出的警告弹窗中点击“确定”按钮
# 设置隐式等待
driver.implicitly_wait(2)
# 移到警告弹窗,获取弹窗内容,并点击“确认”
print(driver.switch_to.alert.text)
driver.switch_to.alert.accept()


# 退出浏览器
driver.quit()

2.2 确认弹窗

  • 【描述】:包含提示信息和【确认】【取消】按钮
  • 【操作】:1、获取弹窗内容;2、进行“确认”操作;3、进行取消操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、进行确认操作:driver.switch_to.alert.accept()
    • 3、进行取消操作:driver.switch_to.alert.dismiss()

2.3 输入信息提示弹窗

  • 【描述】:包含提示信息、输入信息框和【确认】【取消】按钮
  • 【操作】:1、获取弹窗内容;2、输入框输入信息;3、进行“确认”操作;4、进行取消操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、输入框输入信息:driver.switch_to.alert.send_keys()
    • 3、进行确认操作:driver.switch_to.alert.accept()
    • 4、进行取消操作:driver.switch_to.alert.dismiss()

猜你喜欢

转载自blog.csdn.net/Lucifer__hell/article/details/129616100