Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)
如果你还想从头学起Selenium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1680176.html
其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)
首先,将下面html代码保存到一个文件中
后续的代码小案例都是访问此html的
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>警告框处理</title>
- <script type="text/javascript">
- function duihua() {
- alert("这个窗口是对话框!");
- print('你点击了确认');
- }
- function queren() {
- var se = confirm("确认框!");
- if (se == true) {
- print('你点击了确认1');
- } else {
- print('你点击了取消1');
- }
- }
- function tishi() {
- var se = prompt("请输入您的反馈意见", "测试")
- if (se != null) {
- print('你点击了确认2');
- } else {
- print('你点击了取消2');
- }
- // if (t != null && t != "") {
- // document.write("刷新回到初始界面")
- // }
- }
- function print(text) {
- var dom = document.createElement('div')
- dom.innerText = text
- document.getElementsByTagName('body')[0].appendChild(dom)
- }
- </script>
- </head>
- <body>
- <input id="bu1" type="button" onclick="duihua()" value="点击显示对话框"/>
- <br>
- <br>
- <input id="bu2" type="button" onclick="queren()" value="点击显示确认框"/>
- <br>
- <br>
- <input id="bu3" type="button" onclick="tishi()" value="点击显示提示框"/>
- </body>
- </html>
alert窗口的类型
- 警告框
- 确认框
- 对话框
警告框
确认框
对话框
操作alert窗口
- 切换至alert窗口
- 获取alert窗口的值
- 确定
- 取消
- 输入值
警告框的栗子
- # !/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- __title__ =
- __Time__ = 2020/3/25 17:52
- __Author__ = 小菠萝测试笔记
- __Blog__ = https://www.cnblogs.com/poloyy/
- """
- from selenium import webdriver
- driver = webdriver.Chrome("../resources/chromedriver.exe")
- # html文件路径需要自己替换哦
- driver.get("file:///C:/警告框.html")
- driver.maximize_window()
- # 警告框
- alert1 = driver.find_element_by_id("bu1")
- # 先点击,得先弹出警告框
- alert1.click()
- # 切换至警告框
- alert1 = driver.switch_to.alert
- # 获取alert窗口的值
- print(alert1.text)
- # 点击 确定
- alert1.accept()
确认框的栗子
- alert2 = driver.find_element_by_id("bu2")
- alert2.click()
- # 切换至对话框
- alert2_ = driver.switch_to.alert
- # 获取窗口值
- print(alert2_.text)
- # 点击 取消
- alert2_.dismiss()
- # 点击 确认
- # alert2_.accept()
对话框的栗子
- alert3 = driver.find_element_by_id("bu3")
- alert3.click()
- # 切换至对话框
- alert3_ = driver.switch_to.alert
- # 获取窗口值
- print(alert3_.text)
- # 输入值到对话框中
- alert3_.send_keys("输入对话框")
- # 点击 确认
- alert2_.accept()
switch_to.alert源码解读
- @property
- def alert(self):
- """
- Switches focus to an alert on the page.
- :Usage:
- alert = driver.switch_to.alert
- """
- alert = Alert(self._driver)
- alert.text
- return alert
知识点
- alert是一个属性,不是一个方法
- 最终返回一个 Alert 实例,所以我们需要有变量去接住它,后续通过这个变量去操作alert窗口
- 操作alert窗口的方法都 Alert 的方法
Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)的更多相关文章
- selenium+python之 辨识alert、window以及操作
1.分辨 首先区别下alert.window和伪装对话框: alert,浏览器弹出框,一般是用来确认某些操作.输入简单的text或用户名.密码等,根据浏览器的不同,弹出框的样式也不一样,不过都是很简单 ...
- Selenium系列之--04 常见元素操作总结
一.Selenium总共有八种定位方法 By.id() 通过id定位 By.name() 通过name 定位 By.xpath() 通过xpath定位 By.className() 通过clas ...
- 爬虫系列(九) xpath的基本使用
一.xpath 简介 究竟什么是 xpath 呢?简单来说,xpath 就是一种在 XML 文档中查找信息的语言 而 XML 文档就是由一系列节点构成的树,例如,下面是一份简单的 XML 文档: &l ...
- AngularJs的UI组件ui-Bootstrap分享(九)——Alert
alert指令会在页面上显示一条提示消息,效果是这样: 代码为: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" ...
- QApplication::alert 如果窗口不是活动窗口,则会向窗口显示一个警告(非常好用,效果就和TeamViewer一样)
void QApplication::alert(QWidget * widget, int msec = 0)如果窗口不是活动窗口,则会向窗口显示一个警告.警报会显示msec 毫秒.如果毫秒为零,闪 ...
- java基础解析系列(九)---String不可变性分析
java基础解析系列(九)---String不可变性分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---In ...
- java多线程系列(九)---ArrayBlockingQueue源码分析
java多线程系列(九)---ArrayBlockingQueue源码分析 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 j ...
- 分布式系列九: kafka
分布式系列九: kafka概念 官网上的介绍是kafka是apache的一种分布式流处理平台. 最初由Linkedin开发, 使用Scala编写. 具有高性能,高吞吐量的特定. 包含三个关键能力: 发 ...
- selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None;Message: unexpected alert open: {Alert text : 您点击的频率过快!请稍后再试}
报错 Traceback (most recent call last): File "C:/myFiles/code/cnki/cnki_1/core/knavi.py", li ...
随机推荐
- 基于FPGA的RGB图像转灰度图像算法实现
一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2 ...
- Leetcode1353_最多可以参加的会议数目
题目地址 给定n个会议时间区间,会议不用全程参加,问最多能参加的数目. 时间区间按左端点排序,扫一遍,每一天把当天开始的区间结束时间加入,同时把这一天之前结束的区间删掉,然后贪心从最小堆取出结束时间的 ...
- scrapy爬虫-代理IP中间件
class ProxyDownloaderMiddleware(object): # Not all methods need to be defined. If a method is not de ...
- 聊聊RabbitMQ那一些事儿之一基础应用
聊聊RabbitMQ那一些事儿之一基础应用 Hi,各位热爱技术的小伙伴您们好,今年的疫情害人啊,真心祝愿您和您的家人大家都平平安安,健健康康.年前到现在一直没有总结点东西,写点东西,不然久了自己感觉自 ...
- 自然语言处理NLTK之入门
环境:window10 + python3 一.安装NLTK pip install nltk # 或者 PyCharm --> File --> Settings --> Proj ...
- 7-35 jmu-python-求三角形面积及周长 (10 分)
输入的三角形的三条边a.b.c,计算并输出面积和周长.假设输入三角形三边是合法整形数据. 三角形面积计算公式: ,其中s=(a+b+c)/2. import math #导入math库 math.s ...
- springboot创建,自动装配原理分析,run方法启动
使用IDEA快速创建一个springboot项目 创建Spring Initializr,然后一直下一步下一步直至完成 选择web,表示创建web项目 运行原理分析 我们先来看看pom.xml文件 核 ...
- 工作技术点小计14条 hybrid + animate 方向
设置transition 动画的时候 , js直接设置duration 和 变化值不会起作用 , 需要先设置duration , 等一小会再设置变化值 安卓端 , 窗口不可见时 , window.in ...
- Python爬虫 抓肺炎疫情实时数据
数据下载 网上一搜,首先搜到的是腾讯的疫情实时追踪,那就用这个数据源吧. 有了网址怎么抓数据呢?这里,可以从纷乱中找到最靠谱的下载方式.我习惯用FireFox浏览器,下面的讲解就以FireFox为例( ...
- spring boot actuator服务监控与管理
1.引入actuator所需要的jar包 <dependency> <groupId>org.springframework.boot</groupId> < ...