14-alert\confirm\prompt\自定义弹窗

一、认识alert\confirm\prompt

下图依次是alert、confirm、prompt,先认清楚长什么样子,以后遇到了就知道如何操作了。

二、alert操作

  1. 先用driver.switch_to.alert方法切换到alert弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击"确认"按钮;
  4. dismiss()方法相当于点击右上角的x,取消弹出框。
python 复制代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)

# 点击主页面上的alert按钮
driver.find_element('id', 'alert').click()
time.sleep(1)

# 切换到alert框
t = driver.switch_to.alert

# 打印alert框中的文本信息
print(t.text)

# 点击alert框中的确认按钮
t.accept()

# 相当于点右上角的x,取消弹出框。
# t.dismiss()

三、confirm操作

  1. 先用driver.switch_to.alert方法切换到confirm弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击"确认"按钮;
  4. dismiss()方法相当于点击"取消"按钮。
python 复制代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)

# 点击主页面上的confirm按钮
driver.find_element('id', 'confirm').click()
time.sleep(1)

# 切换到confirm框(这里用的也是driver.switch_to.alert)
t = driver.switch_to.alert

# 打印confirm框中的文本信息
print(t.text)

# 点击confirm框中的确认按钮
t.accept()

# 点击confirm框中的取消按钮
# t.dismiss()

四、prompt操作

  1. 先用driver.switch_to.alert方法切换到prompt弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击"确认"按钮;
  4. dismiss()方法相当于点击"取消"按钮;
  5. 可以用send_keys()方法向prompt输入框中输入文本内容。
python 复制代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)

# 点击主页面上的prompt按钮
driver.find_element('id', 'prompt').click()
time.sleep(1)

# 切换到prompt框(这里用的也是driver.switch_to.alert)
t = driver.switch_to.alert

# 打印prompt框中的文本信息
print(t.text)

# 向prompt输入框中输入文本内容
t.send_keys('我是prompt框')

# 点击prompt框中的确认按钮
t.accept()

# 点击prompt框中的取消按钮
# t.dismiss()

五、自定义弹窗

由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用selenium自带的方法无法处理,此时就需要通过JS代码来处理了。这里以新世界教育网为例:https://sh.xsjedu.org/riyu/zt/006/

上图中的这种蓝色弹窗就是现在主流的表现形式,处理这种弹窗可以利用JS代码进行处理,这种元素对象有一个display属性,可以设置元素是否显示。

python 复制代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://sh.xsjedu.org/riyu/zt/006/')
time.sleep(1)

js = 'document.getElementsByClassName("tanchuang")[0].style.display="none";'
driver.execute_script(js)
相关推荐
生而为虫14 小时前
Selenium打开网页时保持登陆状态
selenium·测试工具
Yeats_Liao14 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
好好学习天天向上~~15 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化
骆驼爱记录17 小时前
Word样式检查器使用指南
自动化·word·excel·wps·新人首发
XiaoMu_00118 小时前
自动化漏洞扫描与预警平台
运维·网络·自动化
生而为虫19 小时前
[Windows] 【浏览器自动化精灵V1.0】用Excel表格控制浏览器的自动化
运维·自动化
淡忘_cx20 小时前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins
风指引着方向21 小时前
昇腾 AI 开发生产力工具:CANN CLI 的高级使用与自动化脚本编写
运维·人工智能·自动化
掌心向暖RPA自动化21 小时前
影刀RPA如何在网页和桌面软件中实现自动滚动长截图?最好同时支持横向滚动纵向滚动的?
经验分享·自动化·影刀rpa·长截图
淡忘_cx21 小时前
使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)
java·自动化·jenkins