文章目录
概要
以下三种弹窗机制现在系统很少有,因为所有的弹窗交互都是基于div层直接实现。
区分弹窗是浏览器的alert窗口还是基于div层的html元素:
- 浏览器的alert窗口无法右键点击检查。
- 如果弹窗的样式与操作系统或者浏览器一个风格,则一定是alert;如果弹窗的样式与软件系统一个风格,一般都是div层,只需要考虑是否存在iframe即可。
对于是基于div层的弹窗,只需要定位并进行相应的操作就可以了。
1 Alert(警告信息)
Alert弹出框,目的就是显示通知信息,只需用户看完信息后,点击OK(确定)就可以了。
Selenium提供如下方法进行操作:
# 点击OK(确定)按钮
wd.switch_to.alert.accept()# 获取弹出框的信息内容
wd.switch_to.alert.text
注意:如果我们不去点击它,页面的其它元素是不能操作的。
2 Confirm(确认信息)
Confirm弹出框,主要是让用户确认是否要进行某个操作。 有两个选择供用户选择,分别是OK(确定)和Cancel(取消)。
Selenium提供如下方法进行操作:
# 点击OK(确定)按钮
wd.switch_to.alert.accept()# 点击Cancel(取消)按钮
wd.switch_to.alert.dismiss()
3 Prompt(提示输入)
出现Prompt弹出框是需要用户输入一些信息,提交上去。
Selenium提供如下方法进行操作:
wd.switch_to.alert.send_keys()
4 示例
打开网址:https://cdn2.byhy.net/files/selenium/test4.html,分别操作alert,confirm,prompt弹出框。
from selenium import webdriver
# 创建Webdriver对象,指明使用Chromedriver,运行Chrome浏览器
wd = webdriver.Chrome()
wd.implicitly_wait(5)# 调用Webdriver对象的get方法,打开网址
wd.get('https://cdn2.byhy.net/files/selenium/test4.html')# ------Alert------
wd.find_element_by_id('b1').click()# 获取Alert对象
alert = wd.switch_to.alert
# 打印弹出框提示信息print(alert.text)# 点击确定按钮
alert.accept()# ------Confirm------
wd.find_element_by_id('b2').click()# 获取Alert对象
confirm = wd.switch_to.alert
# 打印弹出框提示信息print(confirm.text)# 点击确定按钮
confirm.accept()
wd.find_element_by_css_selector('#b2').click()# 点击取消按钮
confirm.dismiss()# ------Prompt------
wd.find_element_by_id('b3').click()# 获取Alert对象
prompt = wd.switch_to.alert
# 打印弹出框提示信息print(prompt.text)# 输入信息
prompt.send_keys('Web自动化 - Selenium')# 点击确定按钮
prompt.accept()
wd.find_element_by_css_selector('#b3').click()# 点击取消按钮
prompt.dismiss()# 关闭浏览器并释放进程资源
wd.quit()
版权归原作者 程序媛_ 所有, 如有侵权,请联系我们删除。