selenium提供switch_to_alert方法:捕获弹出对话框(可以定位alert、confirm、prompt对话框)
switch_to_alert() --定位弹出对话框
text() --获取对话框文本值
accept() --相当于点击“确认”
dismiss() --相当于点击“取消”
send_keys() --输入值(alert和confirm没有输入对话框,所以就不用能用了,只能使用在prompt里)
页面弹窗有 3 种类型:
- alert(警告信息)
- confirm(确认信息)
- prompt(提示输入)
对于页面出现的 alert 弹窗,Selenium 提供如下方法:
序号
方法/属性
描述
1
accept()
接受
2
dismiss()
取消
3
text
获取显示的文本
4
send_keys()
输入内容
对应处理方式:
- alert(警告信息):WebDriver.switch_to.alert.accept()
- confirm(确认信息):
- WebDriver.switch_to.alert.accept()
- WebDriver.switch_to.alert.dismiss()
- prompt(提示输入):WebDriver.switch_to.alert.send_keys()
alert(警告信息)弹出框
alert(警告信息)弹出框,目的是提示通知信息,只需要用户看完点击确认即可。
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打开浏览器 driver.get("http://sahitest.com/demo/alertTest.htm") # 跳转至测试页面 sleep(1) element = driver.find_element_by_name("b1") # 定位 element.click() # 点击 sleep(1) alert = driver.switch_to.alert # 切换到弹窗 print(alert.text) # 打印弹窗显示的信息:Alert Message alert.accept() # 接受 sleep(2) driver.quit() # 关闭浏览器
confirm(确认信息)弹出框
confirm(确认信息)弹出框,主要是让用户来确定是否要执行某个操作。比如,淘宝,京东等,删除订单是弹出此类弹出,让用户确定是否删除,避免用户误操作。
confirm(确认信息)弹出框提供两种选择,“确认” 或者 “取消”。只需要选择其中一个即可:
- 确认:WebDriver.switch_to.alert.accept()
- 取消:WebDriver.switch_to.alert.dismiss()
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打开浏览器 driver.get("http://sahitest.com/demo/confirmTest.htm") # 跳转至测试页面 sleep(1) element = driver.find_element_by_name("b1") # 定位 # 1、接受 element.click() # 点击 sleep(1) alert = driver.switch_to.alert # 切换到弹窗 print(alert.text) # 打印弹窗显示的信息:Alert Message alert.accept() # 接受 sleep(2) # 2、取消 element.click() # 点击 sleep(1) alert = driver.switch_to.alert # 切换到弹窗 print(alert.text) # 打印弹窗显示的信息: alert.dismiss() sleep(2) driver.quit() # 关闭浏览器
prompt(提示输入)弹出框
prompt(提示输入)弹出框,目的是需要用户先输入信息,再做提交。Selenium 提供输入信息的方法是:
WebDriver.switch_to.alert.send_keys()
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打开浏览器 driver.get("http://sahitest.com/demo/promptTest.htm") # 跳转至测试页面 sleep(1) element = driver.find_element_by_name("b1") # 定位 # 1、接受 element.click() # 点击 sleep(1) alert = driver.switch_to.alert # 切换到弹窗 print(alert.text) # 打印弹窗显示的信息:Alert Message alert.send_keys("自动化测试") # 输入内容 sleep(1) alert.accept() # 接受 sleep(2) driver.quit() # 关闭浏览器
注意 : 有些弹窗并非浏览器的 alert 窗口,而是 html元素,对于这种对话框,只需要通过之前介绍的选择器选中,并进行相应的操作即可。
总结
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 谭咏麟《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- 炉石传说40轮盘术最新卡组代码在哪找 标准40轮盘术卡组代码分享
- 炉石传说亲王贼怎么玩 2024亲王贼最新卡组代码分享
- 炉石传说30.6.2补丁后有什么卡组 30.6.2最强卡组最新推荐
- 模拟之声慢刻CD《蔡琴名曲回顾遇听》[原抓WAV+CUE]
- BruceLiu-WAVES(MusicbySatie)(2024)2CD[24Bit-96kHz]FLAC
- KonstantinKrimmel-MythosSchubertLoewe(2024)[24Bit-96kHz]FLAC
- 2024雷蛇高校挑战赛 嘤式分解助力收官之战
- 海信发布110吋世俱杯官方定制AI电视 引领智能观赛
- 海信发布27英寸显示器大圣G5 Pro:采用自研超解析芯片、友达原厂模组
- 蔡琴《机遇》1:1母盘直刻日本头版[WAV分轨][1.1G]
- 陈百强《与你几分钟的约会》XRCD+SHMCD限量编号版[低速原抓WAV+CUE][994M]
- 陈洁丽《监听王NO.1 》示范级发烧天碟[WAV+分轨][1.1G]
- 单色凌.2014-小岁月太着急【海蝶】【WAV+CUE】
- 陈淑桦.1988-抱紧我HOLD.ME.NOW【EMI百代】【WAV+CUE】