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

Python Selenium自动化测试框架:弹窗处理策略与实战 在Web自动化测试中,弹窗处理是提升测试稳定性的关键技术挑战。弹窗本质上是异步交互组件,其随机性和多样性直接影响测试脚本的健壮性。从技术原理看,弹窗可分为JavaScript原生弹窗、HTML自定义模态框和浏览器原生对话框三类,每类需采用不同的定位与交互策略。通过设计模式如策略模式与工厂模式,可构建高内聚、低耦合的弹窗处理框架,实现智能等待与异常恢复机制。在工程实践中,结合Page Object模型与显式等待,能有效处理Selenium测试中的弹窗问题,提升自动化测试效率。本文聚焦Python Seleni 阅读详情
AI摘要

本文介绍了如何使用Python的Selenium库来处理网页中的不同类型的弹窗,包括警告提示弹窗、确认弹窗和输入信息提示弹窗。通过示例代码展示了获取弹窗内容、确认、取消以及输入信息等操作。,

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()
python Selenium初学记录 弹窗处理 no such alert 本意是想写一个自动领取dnf每日签到奖励的小脚本,实际上是功能是已经实现了,可以领取奖励了。 但是我后续想要提取领完奖励后弹窗的文本,直接浏览器里复制xpath,提取不出来。 //*[@id="showAlertContent"] 我就以为是遇到了类似iframe的情况,需要先特殊处理,搜索了一下,发现了关于alert的处理 driver.switch_to.alert() 然而报错了,于是又去找no such alert的相关资料 ... 阅读详情

相关推荐

Python+Selenium前端页面测试自动化

(selenium学习日志一)

Cataleya的专栏 6735

[Python进阶] 消息框、弹窗:tkinter库

应用程序中的提示信息处理程序是非常重要的部分,用户要知道他输入的资料到底正不正确,或者是应用程序有一些提示信息要告诉用户,都必须通过提示信息处理程序来显示适当的信息,让用户了解下一步该如何配置。提示信息有很多种类,包括警告,错误,提示,确认,重试等。不同种类的提示信息框适合用在各种不同的情况。在Windows系统中,对话框(Dialog Box)是一种特殊类型的窗口,用于在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。

知智 1万+

selenium3源码解析Python篇(六)-alert源码解析

讲alert之前,要先了解标准的js有三种弹窗,分别是:alert,confirm,prompt 警告框alert: 动手实践一下哈 确认框confirm: 动手实践一下哈 提示框prompt: 动手实践一下哈 了解这些之后,我们来看下alert的源码部分 我们可以用Alert类让我们的代码,有处理弹窗的能力 先解析下第一部分,上代码: #Alert(driver).accept() 确定 ...

m0_37623792的博客 380

用Python做弹窗提示

用Python做弹窗提示

2201_75323138的博客 4445

python web自动化selenium【元素定位与操作】及弹窗(alert/confirm/prompt)操作及上传附件7

selenium【元素定位与操作】及弹窗(alert/confirm/prompt)操作及上传附件

weixin_43724711的博客 1420

python中的消息弹窗

在写python代码中,经常要弹窗提示一下消息情况,因为有时候我同时用了多个ui框架,比如tkinter,pyqt等,经常找不到合适的弹窗模块。因此梳理了一下几种弹窗方案。 一、采用windows自带的api(需要导入win32api) 特别强调采用这种方案,这种方案的优势就是弹窗模态,并不需要主窗口。 二、采用tkinter自带的消息弹窗模块(需要导入tkinter) 可以看到,用tkinter自带的消息弹窗模块,产生一个弹窗他同时,一定会有个父窗口显示出来,这是非常大的一个败笔,所以除非

dream it possible 2万+

Python自动化测试Selenium面试题:如何处理alert弹窗?

1)先用switch_to_alert()方法切换到alert弹出框上 2)可以用text方法获取弹出的文本 信息 3)通过accept()点击确认按钮 4)通过dismiss()点击取消按钮,取消弹出框 5)通过text()获得弹出窗口的文本

一亿并发的博客 1148

从 Python 控制台获取输入

控制台(也称为 Shell)基本上是一种命令行解释器,它接受用户的输入(即一次一个命令)并解释它。如果没有错误,则它将运行该命令并提供所需的输出,否则显示错误消息。在这里,我们编写一个命令,要执行该命令,只需按 Enter 键,您的命令就会被解释。对于 Python 编码,您必须了解 Python 中使用的控制台的基础知识。Python 命令。接受来自控制台的输入用户在控制台中输入值,然后该值将根据需要在程序中使用。仅当执行第一个命令后出现这些提示时,您才可以在 shell 上自由编写下一个命令。

我的博客,不一样的自我表达 631

UI自动化测试-弹窗处理

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33691700的博客 4019

Python实现定时弹窗提醒

在程序运行时,用户需要输入一个提醒时间(格式为HH:MM:SS),程序会等待到指定的时间后显示弹窗提醒。用户可以点击弹窗中的关闭按钮来关闭提醒窗口。这个例子只是一个简单的示例,你可以根据自己的需求进行扩展和改进。例如,你可以添加更多的提醒内容,或者将提醒时间存储在文件中,实现多个定时提醒的功能。函数用于设置提醒的时间,它会不断检查当前时间与设定的提醒时间是否一致,直到一致后调用。在Python中,我们可以使用一些库来实现定时弹窗提醒功能。库创建了一个简单的弹窗窗口,窗口包含一个提醒标签和一个关闭按钮。

TechBurst的博客 795

告别密码明文传输:手把手带你用Python实现SRP-6协议(附完整代码)

本文详细介绍了如何使用Python实现SRP-6协议,确保密码安全传输和存储。通过零知识证明与密钥交换技术,SRP协议在不传输明文密码的情况下完成认证,适用于金融App等高安全需求场景。文章包含完整代码示例和实战技巧,帮助开发者规避常见安全陷阱。

weixin_30689307的博客 412

Selenium自动化之弹窗处理

我们在使用Selenium做Web自动化测试时,页面经常出现弹窗,如果不处理后续的测试脚本就无法正常运行,今天我们就带大家一起来学习如何处理Web页面上的弹窗。

qq_73332379的博客 1187

Claude Skills:不是更聪明,而是更“像专家”的 Agent 养成方法

Claude Skills 不是在告诉 Agent“你能做什么”, 而是在约束它“你应该如何思考、如何判断、如何给结论”。

测试者家园 1294

自动化中web弹窗处理,涨知识啦!

在自动化测试中,我们经常会遇到一个问题就是弹窗的定位。今天就来和大家分享一下web自动化中的弹窗处理。

伤心的辣条 1124

条件风险价值CVaR内容介绍(MATLAB例程)

在对微电网优化调度过程中,由于新能源机组出力和负荷的不确定性,若采用确定性的优化调度方案会存在一定的风险。反之,若风电和光伏输出功率的实际值高于预测值时,则需要降低可控机组出力或者弃风弃光,这都会给系统带来运行费用增加的风险。下,损失超过VaR值时的条件均值[1]。VaR是指在一定的置信水平下,某一投资组合在未来某一时间段内的最大损失。为m维决定系统风险损失的随机向量f(y)为y的概率密度函数。式中,m为所有场景的数量,yk为第k个场景下随机变量的值,为第k个场景发生的概率。的最小值即为CVaR,对应的。

贾贾的博客 3060

赛灵思KV260视觉AI套件实战:从模型到边缘部署全流程解析

边缘计算与AI推理加速是当前嵌入式系统和物联网领域的关键技术。其核心原理在于将计算任务从云端下沉至网络边缘的设备端,通过专用硬件加速器(如FPGA、ASIC或NPU)执行神经网络推理,从而显著降低延迟、减少带宽消耗并提升数据隐私性。这一技术为实时性要求高的应用场景(如工业视觉检测、智能安防、自动驾驶等)提供了关键支撑。以赛灵思(Xilinx)的Zynq UltraScale+ MPSoC平台为例,其集成了ARM处理器与可编程逻辑,通过预置的深度学习处理器单元(DPU)为卷积神经网络提供高效INT8加速。开发

weixin_28719225的博客 326

python selenium 无法处理alert 弹窗_关于selenium弹出alert点击确定的问题

先交代一下场景,页面上会有一个列表,然后下面有两个元素,一个是全选的check,一个是接收的div,正常的人工操作是点击全选,然后点击接收,然后弹出alert(),点击确定接收完,后自动关闭窗口。现用selenium自动化这个操作,这两个元素onclick都可运行js脚本onclick=checkedalldoc();#checkonclick=responseclick();#div利用base...

weixin_39866974的博客 1828

uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. MDK5.37安装ARM_Compiler_5

MDK5.37安装ARM_Compiler_5 最后一个AC5编译器,从MDK5.37开始,不再默认安装,需要独立安装 ARMCompiler_506_Windows_x86_b960.zip (80.94MB) 否则使用AC5编译代码报错如下: Build started: Project: Project *** Target 'STM3210C_EVAL' uses ARM-Compiler 'Default Compiler Version 5' which is not available. *

mowwwcom的专栏 2万+

解决Python自动化测试时F12自动打开开发者模式存在的问题

摘要:本文介绍了在Python自动化测试中自动打开浏览器开发者工具(F12)的解决方案。首先分析了直接使用send_keys(Keys.F12)方法的局限性,然后推荐使用pyautogui库的press('f12')方法实现键盘模拟。针对部分浏览器会弹出"是否打开开发者模式"提示的问题,提出了两种解决方案:1)通过浏览器参数配置禁用询问弹窗;2)使用AutoIt工具处理系统级对话框。文中详细说明了pyautogui库的安装方法、代码实现步骤,以及两种解决弹窗问题的具体操作流程,为自动化测

susuker的博客 1690

WPS Office JS宏实现文件和数据的上传及下载

WPS Office JS宏下载、上传文件;通过加载项实现数据的获取和上传。

学点笔记 4300

ParaView :在paraview创建渲染视图

ParaView :在paraview创建渲染视图

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1306

python+selenium 捕捉不到弹出的div类型的提示解决方法

我在用python+selenium,进行某一网址,登录口的测试时,对错误处理进行处理 用户名 错误用户名 密码 正确密码格式 然后,如果是上面这种情况,系统会从右上角弹出一个类似于文本框的提示: 不存在该用户名或用户被禁用! 但是这个框,我尝试捕获<p>,<div>,它是div类型的,但是无法捕获,如下: b.find_element_b...

Dear_Merlin的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Playwright弹窗与表单控件操作指南

摘要:本文详细介绍了如何使用Playwright(Python版)处理Web自动化测试中的弹窗、单选框和复选框。主要内容包括:1)通过page.on监听alert/confirm/prompt弹窗,实现内容获取、自动点击和输入;2)单选框(radio)的选择、状态验证和互斥性检查;3)复选框(checkbox)的勾选/取消操作及批量处理技巧。文章提供了完整的实战代码示例,并推荐使用expect断言机制提高测试稳定性,最后通过一个注册表单的综合案例演示了这些技术的实际应用。测试人员可以快速掌握这些核心交互元素

qq_61701511的博客 259

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python Selenium自动化测试入门:从环境搭建到POM框架设计

自动化测试是现代软件开发流程中保障产品质量、提升测试效率的核心技术。其原理是通过编写脚本模拟用户操作,自动执行测试用例并验证结果,从而替代重复性手工测试。在Web应用测试领域,Selenium作为行业标准工具,通过WebDriver协议实现对浏览器的精准控制,为持续集成和回归测试提供了强大支持。结合Python语言简洁高效的特性,开发者可以快速构建稳定可靠的自动化测试套件。本文聚焦于Selenium自动化测试的实践应用,详细解析了环境配置、元素定位、等待机制等关键环节,并引入了Page Object Mod

weixin_28840591的博客 289

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 【Python自动化测试】:frame和iframe框架的切换
下一篇: 【Python自动化测试】:单选框、复选框与下拉框操作
Lucifer__hell
博客等级 码龄8年 53粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值