selenium-Alert类用于操作提示框/确认弹框(4)

之前文章我们提到,在webdriver.WebDriver类有一个switch_to方法,通过switch_to.alert()可以返回Alert对象,而Alert对象主要用于网页中弹出的提示框/确认框/文本输入框的确认或者取消等动作。

Alert介绍

当在页面定位到提示框/确认框/文本录入框并点击后,页面会弹出对话框,通过driver.switch_to.alert切换到Alert对象。

Alert类主要提供四个方法:

  • accept(): 在弹出的对话框中点击确认
  • dismiss():在弹出的对话框中点击取消
  • send_keys(str):在弹出的对话框中录入文本
  • text:属性方法,获取对话框的text信息

示例:自定义一个html文件包括提示框/确认框/文本录入框

我们自定义一个html文件,包含一个提示框 确认框 文本输入框信息,html文件如下:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="javascript:alert('提示框')" id="alert" >提示</a><br>
<a href="javascript:confirm('确认删除吗?')" id="conform" >删除</a><br>
<a href="javascript:var content=prompt('请输入文本');document.write(content)" id="prompt" >录入</a><br>
<input type="submit" value="提交" id="su" class="btn self-btn bg s_btn">
</body>
</html>

html文件打开后如下,可以点击弹出提示框,确认框和文本输入框

示例:点击提示框,点击确认

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
# 打开一个网页
driver.get("file:///Users/htsc/Desktop/myhtml2.html")
driver.maximize_window()
sleep(2)
#定位到提示框并点击
driver.find_element(By.ID,'alert').click()
sleep(1)
#切换到提示框对象
alertins = driver.switch_to.alert
#点击确认
alertins.accept()
sleep(3)

示例:点击删除,弹出确认框,可点击取消或者确认

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
# 打开一个网页
driver.get("file:///Users/htsc/Desktop/myhtml2.html")
driver.maximize_window()
sleep(2)
#定位到删除并点击
driver.find_element(By.ID,'confirm').click()
sleep(1)
#切换到确认框对象
alertins = driver.switch_to.alert
#点击确认或者点击取消
alertins.accept()
alertins.dismiss()
sleep(3)

示例:点击录入,弹出文本输入框,输入文本后点击确认或者取消

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
# 打开一个网页
driver.get("file:///Users/htsc/Desktop/myhtml2.html")
driver.maximize_window()
sleep(2)
#定位到删除并点击
driver.find_element(By.ID,'prompt').click()
sleep(1)
#输入文本信息
alertins.send_keys('我爱中国')
sleep(1)
#切换到确认框对象
alertins = driver.switch_to.alert
#点击确认或者点击取消
alertins.accept()
alertins.dismiss()
sleep(3)

程序执行后,录入信息,截图如下:

共勉: 东汉·班固《汉书·枚乘传》:"泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。"

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

相关推荐
2601_9654490811 分钟前
我用AI给开源项目做了个官网宣传片,流程全公开
信息可视化·自动化·音视频
伤心的梧桐叶1 小时前
Picset与创客贴比等待时间,没做完的任务不能从表里消失
python
没有气的汽水1 小时前
一次 SQS 消费者静默退出的排查:问题最后竟然出在日志里
python
用户450030140231 小时前
物业催缴系统为什么总在"冷却"这一步翻车:账期建模与规则命中的几个取舍
python
Web极客码1 小时前
决策模型 + LLM:用 Python 拆解浏览器自动化工作流
java·python·自动化
fanruitian2 小时前
python 装饰器 闭包
python
_Doubletful2 小时前
从零开始学 UI 第一篇:Figma 快速上手实战指南(上)
ui·figma
泡茶喝茶写代码2 小时前
A股量化策略回测实战:从行情数据到绩效评估(第 13 篇):放量突破策略
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口
智能运维指南2 小时前
企业 IT 管理软件如何选型?先理清监控、服务管理、配置与自动化能力
运维·自动化·自动化运维·嘉为蓝鲸
cxyxixiy2 小时前
数智码力:数据核对不用人工比对,Python 快速完成多表格差异校验
开发语言·python·学习