0


【Selenium】弹出框处理

文章目录

概要

以下三种弹窗机制现在系统很少有,因为所有的弹窗交互都是基于div层直接实现。
区分弹窗是浏览器的alert窗口还是基于div层的html元素:

  1. 浏览器的alert窗口无法右键点击检查。
  2. 如果弹窗的样式与操作系统或者浏览器一个风格,则一定是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()
标签: selenium

本文转载自: https://blog.csdn.net/weixin_49026134/article/details/123436461
版权归原作者 程序媛_ 所有, 如有侵权,请联系我们删除。

“【Selenium】弹出框处理”的评论:

还没有评论