selenium 处理网页上的弹窗

news/2024/12/22 20:20:05/

处理网页上的弹窗按钮,主要取决于弹窗的类型。在Web自动化测试中,常见的弹窗类型包括:JavaScript弹窗(如alert、confirm和prompt弹窗)和Web页面自定义弹窗(通常是HTML元素实现的)。以下是处理这两种类型弹窗的方法:

JavaScript 弹窗

对于JavaScript生成的弹窗,Selenium提供了一套简单的API来处理它们。这些弹窗不是HTML元素,所以不能用常规的元素定位方法来处理。

  • Alert 弹窗:只有一个确认按钮。
  • Confirm 弹窗:有确认和取消两个按钮。
  • Prompt 弹窗:允许用户输入数据,并有确认和取消两个按钮。

处理这些弹窗的基本步骤如下:

from selenium import webdriverdriver = webdriver.Firefox()
driver.get("网页地址")# 假设触发了一个alert弹窗
alert = driver.switch_to.alert# 获取弹窗文本
alert_text = alert.text
print(alert_text)# 确认弹窗
alert.accept()# 对于confirm或prompt弹窗,可以使用dismiss()来取消
# alert.dismiss()# 如果是prompt弹窗,还可以发送文本输入
# alert.send_keys("你的输入")

Web页面自定义弹窗

对于网页自定义的弹窗,通常是用HTML/CSS/JavaScript实现的,可以像处理普通网页元素一样来处理这些弹窗。

  1. 首先,你需要定位到弹窗中的按钮或其他元素。
  2. 然后,使用Selenium的点击事件来模拟用户操作。

例如:

from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Firefox()
driver.get("网页地址")# 假设我们要关闭一个自定义弹窗
# 首先定位到弹窗的关闭按钮
close_button = driver.find_element(By.CSS_SELECTOR, "关闭按钮的选择器")# 点击关闭按钮
close_button.click()

在处理自定义弹窗时,可能需要使用显式等待(WebDriverWait),确保在尝试操作弹窗元素之前,弹窗已完全加载并可见。


http://www.ppmy.cn/news/1470781.html

相关文章

超级数据查看器 教程pdf 1-31集 百度网盘

百度网盘链接 提取码1234https://pan.baidu.com/s/1s_2lbwZ2_Su83vDElv76ag?pwd1234 通过百度网盘分享的文件:超级数据查看器 … 链接:https://pan.baidu.com/s/1s_2lbwZ2_Su83vDElv76ag?pwd1234 提取码:1234 复制这段内容打开「百度网盘APP 即可获取」

Apple - Secure Coding Guide

本文翻译整理自:Secure Coding Guide https://developer.apple.com/library/archive/documentation/Security/Conceptual/SecureCodingGuide/Introduction.html#//apple_ref/doc/uid/TP40002477-SW1 文章目录 一、安全编码指南简介1、概览黑客和攻击者没有平台是免疫…

kafka 管理节点 Controller 角色分析

kafka 管理节点 Controller 角色分析 kafka controller 如何管理分区的创建、状态监测、故障切换、内容复制、如何管控分区副本的状态检测故障切换、数据同步、learder 选举?Kafka Controller 是 Kafka 集群中的一个关键组件,负责管理分区的创建、状态监测、故障切换、内容 …

java面试(企业场景)

设计模式 工厂方法模式 简单工厂模式 简单工厂包括以下角色: 抽象产品:定义了产品的规范,描述了产品的主要特性和功能具体产品:实现或者继承抽象产品的子类具体工厂:提供了创建产品的机会,调用者通过该…

工业用焦炉集气管压力控制状态远程预警方法

工业用焦炉集气管压力控制状态远程预警方法 一、项目提出前状况: 焦化厂焦炉集气管压力是炼焦生产过程中重要的工艺参数(其控制目标80~120Pa),焦炉集气管压力的稳定是焦炉正常生产的重要保证。集气管压力过高会造成焦炉炉体冒烟冒火,污染环境,对操作人员的人身安全构成…

Flink nc -l -p 监听端口测试

1、9999端口未占用 netstat -apn|grep 99992、消息发送端 nc -l -k -p 9999 {"user":"ming","url":"www.baidu1.com", "timestamp":1200L, "score":1} {"user":"xiaohu","url":…

设置 Windows 7 任务栏图标的最佳方法是在 `PyQt4` 中设定应用程序的任务栏图标。

许多开发人员遇到使用 setWindowIcon 仅更改窗口左上角图标而未影响任务栏图标的问题。以下是解决方案,以及相关背景和步骤。 背景 在 Windows 7 中,任务栏图标关联的是“应用程序用户模型”,而不是单个应用程序窗口。Windows 会使用一些启…

vue中的自定义指令

第1部分:引言 在Vue.js中,自定义指令提供了一种非常灵活的方式来扩展Vue的功能。它们允许开发者直接对DOM进行操作,响应数据变化,甚至与其他组件或库集成。 第2部分:Vue自定义指令概述 2.1 什么是Vue自定义指令 Vu…