• 【selenium】页面弹窗 alert 操作


    Selenium 页面消息框处理2

    • alert:警告消息框
    • confirm:确认消息框
    • prompt:提示消息对话框

    还有一种是页面弹框,类似百度登录,这种可以直接定位到,此处忽略。

    操作 alert 的方法

    # 获取当前页面上的警告框
    alert = switch_to.alert()
    
    alert.text  # 返回文本信息
    alert.accept()   # 确定
    alert.dismiss()  # 取消
    alert.send_keys("hello") # 输入文本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1. alert

    alert()方法用于显示带有一条指定消息和一个 确认 按钮的警告框。

    示例

    """ 
    1. 切换到 iframe 内,点击按钮,弹出弹窗
    2. 弹窗内点击确定或取消
    3. 退出 alert,返回初始页面
    """
    driver.get("https://www.runoob.com/try/try.php?filename=tryjs_alert")
    driver.switch_to.frame("iframeResult")
    driver.find_element(By.XPATH, '//*[@value="显示警告框"]').click()
    
    # 切换到 alert 弹框内
    alert = driver.switch_to.alert
    alert.accept()  # 点击确定
    
    # 退出弹框界面
    driver.switch_to.default_content()
    assert driver.find_element(By.ID, "submitBTN").text == "点击运行 》"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2. confirm

    confirm()方法用于显示一个带有指定消息和确认及取消按钮的对话框。

    如果访问者点击"确定",此方法返回 true,否则返回 false。

    根据点击按钮不同,页面展示会有不同。

    """ 
    1. 切换到 iframe 内,点击按钮,弹出弹窗
    2. 弹窗内分别点击 确定/取消
    3. 验证页面展示文本为:你按下了"确定/取消"按钮!
    """
    driver.get("https://www.runoob.com/try/try.php?filename=tryjs_confirm")
    driver.switch_to.frame("iframeResult")
    
    # 切换到 alert 弹框内,点击「确定」,断言文案
    driver.find_element(By.XPATH, "//body/button").click()  # 点我
    alert = driver.switch_to.alert
    alert.accept()  # 点击确定
    assert driver.find_element(By.ID, "demo").text == '你按下了"确定"按钮!'
    
    # 切换到 alert 弹框内,点击「取消」,断言文案
    driver.find_element(By.XPATH, "//body/button").click()  # 点我
    alert = driver.switch_to.alert
    alert.dismiss()  # 点击取消
    assert driver.find_element(By.ID, "demo").text == '你按下了"取消"按钮!'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3. prompt

    prompt()方法用于显示可提示用户进行输入的对话框。

    这个方法返回用户输入的字符串。

    支持用户在弹框内输入文本,用于后续处理。

    """
    1. 切换到 iframe 内,点击按钮,弹出弹窗
    2. 弹窗内点击取消,验证获取文本为空,文本展示元素不存在
    3. 弹窗内输入文本点击确定,验证文本展示与输入一致
    """
    driver.get("https://www.runoob.com/try/try.php?filename=tryjs_prompt")
    
    # 1. 切换到 iframe 内,点击按钮,弹出弹窗
    self.driver.switch_to.frame("iframeResult")
    self.driver.find_element(By.XPATH, "//body/button").click()
    
    # 2. 弹窗内点击取消,验证获取文本为空,文本展示元素不存在
    alert = self.driver.switch_to.alert
    alert.dismiss()
    assert self.driver.find_element(By.ID, "demo").is_selected() is False
    
    # 3. 弹窗内输入文本点击确定,验证文本展示与输入一致
    self.driver.find_element(By.XPATH, "//body/button").click()
    alert = self.driver.switch_to.alert
    assert alert.text == "请输入你的名字"
    alert.send_keys("father")
    alert.accept()
    assert "father" in self.driver.find_element(By.ID, "demo").text
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    《Principles of Model Checking》Charpter 1 System Verification
    大型网站技术架构核心原理与案例分析学习笔记(实践篇)
    云计算与云安全简介
    40亿个QQ号,限制1G内存,如何去重?
    网站速度测试和优化方案
    云计算到底什么,十个问答告诉您
    AWB(Auto White Banlance)——自动白平衡
    用Scapy模块中的sr()函数提供一个程序的例子
    从【臀部监控】到【电脑监控软件】,企业如何在隐私权与管理权博弈中找到平衡
    [洛谷月赛]终于结束的起点
  • 原文地址:https://blog.csdn.net/lan_yangbi/article/details/127968344