【selenium】页面弹窗 alert 操作
创始人
2024-02-06 08:38:16

Selenium 页面消息框处理2

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

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

操作 alert 的方法

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

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 == "点击运行 》"

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 == '你按下了"取消"按钮!'

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

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...