Cyan Blog Cyan Blog
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
  • 设计模式

  • 软件测试

  • 软件测试实验

    • 软件测试
    • WebDriver⭐⭐
    • 定位⭐⭐
    • 浏览器操作⭐
    • 元素基本操作⭐⭐
    • 模拟键鼠操作⭐⭐
    • 消息框操作⭐
    • 切换浏览器窗口⭐
    • SoftwareTest⭐
    • SoftwareTest
    • SoftwareTest
    • SoftwareTest
    • SoftwareTest
  • 计算机
  • 软件测试实验
2025-03-17
0
0

消息框操作⭐

  • 在wb浏览的时候经常会弹出消息框,用于给客户提示:

    • JavaScript根据功能把它分为三类:Alert(提示框)、Confirm(确认框)、Prompt(输入框)(不常用)
    • Selenium中把它们统称为Alert
  • 消息框的特点:

    • 特点1:
      • 因为它不属于网页元素,所以在消息框上右击之后,没有“检查"菜单,无法查看其网页源代码。
    • 特点2:
      • 一般都是模态消息框,不关闭它,后面的网页是无法操作的。

​ 注意:不是所有的弹出框都叫Alert,在使用 Alert前,先要识别出到底是不是Alert。

  • Alert类:是Selenium中消息框处理的专用类。

  • 初始化Alerta类对象:

    • 切换到消息框,得到Alert对象实例
      • 对象=driver.switch_to.alert
  • AIet类对象属性:记录消息框里的信息。

    • 变量=对象.text →str类型消息框里的信息。
  • Alert类对象方法:用于操作消息框。

    • 对象.accept()→点击确认/确定按钮。

    • 对象.dismiss()→点击取消按钮。

    • 对象.send_keys(数据)→向prompt类型消息框里输入数据。(不常用)

driver.find_element(By.XPATH,//img [contains(@src,"bnt_cat.gif")]').click()
#输出消息框内容
mes1=driver.switch_to.alert
tex=mes1.text
print(tex)
mes1.dismiss()
driver.find_element(By.XPATH,'//img[contains(@src,"bnt_colles.gif")]').click()

mes2=driver.switch_to.alert
tex2=mes2.text
print(tex2)
mes2.accept()
driver.find_element(By.XPATH,'//input[@value="Click For Prompt"]').click()
mes1=driver.switch_to.alert
mes1.send_keys("hello")

mes1.accept()
tex1=driver.find_element(By.NAME,"t1").get_attribute("value")
print(tex1)

driver.find_element(By.XPATH,'//input[@value="Click For Prompt"]').click()

mes2=driver.switch_to.alert
mes2.send_keys("hello")
mes2.dismiss()
tex2=driver.find_element(By.NAME,"t1").get_attribute("value")
print(tex2)
  • 小结

    • 指令

      • 对象=driver.switch_to.alert

      • 变量=对象.text→str类型消息框里的信息。

      • 对象.accept()→点击确认/确定按钮。

      • 对象.dismiss()→点击取消按钮。

      • 对象.send_keys(数据)→向prompt类型消息框里输入数据。(不常用)

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Firefox()
driver.implicitly_wait(5)
driver.get('http://localhost:8080/upload/index.php')
driver.find_element(By.NAME,'imageField').click()
sleep(3)
#输出消息框内容
mes=driver.switch_to.alert
tex=mes.text
print(tex)
mes.accept()
driver.find_element(By.ID,'keyword').send_keys('806')
driver.find_element(By.NAME,'imageField').click()
sleep(3)
driver.find_element(By.XPATH,'//a[@href="goods.php?id=24"]').click()
sleep(3)
driver.find_element(By.XPATH,'//a[@href="javascript:addToCart(24)"]').click()
sleep(6)
driver.find_element(By.LINK_TEXT,'删除').click()
mes=driver.switch_to.alert
tex=mes.text
print(tex)
mes.dismiss()
driver.quit()
#软件测试
上次更新: 2025/5/2 14:40:28
模拟键鼠操作⭐⭐
切换浏览器窗口⭐

← 模拟键鼠操作⭐⭐ 切换浏览器窗口⭐→

最近更新
01
项目优化
05-06
02
项目优化
05-06
03
延迟消息
05-05
更多文章>
Theme by Vdoing | Copyright © 2025-2025 Cyan Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式