如果你还想从头学起Selenium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

首先,将下面html代码保存到一个文件中

后续的代码小案例都是访问此html的

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>警告框处理</title>
  6. <script type="text/javascript">
  7. function duihua() {
  8. alert("这个窗口是对话框!");
  9. print('你点击了确认');
  10. }
  11.  
  12. function queren() {
  13. var se = confirm("确认框!");
  14. if (se == true) {
  15. print('你点击了确认1');
  16. } else {
  17. print('你点击了取消1');
  18. }
  19. }
  20.  
  21. function tishi() {
  22. var se = prompt("请输入您的反馈意见", "测试")
  23. if (se != null) {
  24. print('你点击了确认2');
  25. } else {
  26. print('你点击了取消2');
  27. }
  28. // if (t != null && t != "") {
  29. // document.write("刷新回到初始界面")
  30. // }
  31. }
  32.  
  33. function print(text) {
  34. var dom = document.createElement('div')
  35. dom.innerText = text
  36. document.getElementsByTagName('body')[0].appendChild(dom)
  37. }
  38. </script>
  39. </head>
  40. <body>
  41. <input id="bu1" type="button" onclick="duihua()" value="点击显示对话框"/>
  42. <br>
  43. <br>
  44. <input id="bu2" type="button" onclick="queren()" value="点击显示确认框"/>
  45. <br>
  46. <br>
  47. <input id="bu3" type="button" onclick="tishi()" value="点击显示提示框"/>
  48. </body>
  49. </html>

alert窗口的类型

  • 警告框
  • 确认框
  • 对话框

警告框

确认框

对话框

操作alert窗口

  • 切换至alert窗口
  • 获取alert窗口的值
  • 确定
  • 取消
  • 输入值

警告框的栗子

  1. # !/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. """
  5. __title__ =
  6. __Time__ = 2020/3/25 17:52
  7. __Author__ = 小菠萝测试笔记
  8. __Blog__ = https://www.cnblogs.com/poloyy/
  9. """
  10.  
  11. from selenium import webdriver
  12.  
  13. driver = webdriver.Chrome("../resources/chromedriver.exe")
  14.  
  15. # html文件路径需要自己替换哦
  16. driver.get("file:///C:/警告框.html")
  17. driver.maximize_window()
  18.  
  19. # 警告框
  20. alert1 = driver.find_element_by_id("bu1")
  21.  
  22. # 先点击,得先弹出警告框
  23. alert1.click()
  24.  
  25. # 切换至警告框
  26. alert1 = driver.switch_to.alert
  27.  
  28. # 获取alert窗口的值
  29. print(alert1.text)
  30.  
  31. # 点击 确定
  32. alert1.accept()

确认框的栗子

  1. alert2 = driver.find_element_by_id("bu2")
  2. alert2.click()
  3.  
  4. # 切换至对话框
  5. alert2_ = driver.switch_to.alert
  6.  
  7. # 获取窗口值
  8. print(alert2_.text)
  9.  
  10. # 点击 取消
  11. alert2_.dismiss()
  12. # 点击 确认
  13. # alert2_.accept()

对话框的栗子

  1. alert3 = driver.find_element_by_id("bu3")
  2. alert3.click()
  3.  
  4. # 切换至对话框
  5. alert3_ = driver.switch_to.alert
  6.  
  7. # 获取窗口值
  8. print(alert3_.text)
  9.  
  10. # 输入值到对话框中
  11. alert3_.send_keys("输入对话框")
  12.  
  13. # 点击 确认
  14. alert2_.accept()

switch_to.alert源码解读

  1. @property
  2. def alert(self):
  3. """
  4. Switches focus to an alert on the page.
  5.  
  6. :Usage:
  7. alert = driver.switch_to.alert
  8. """
  9. alert = Alert(self._driver)
  10. alert.text
  11. return alert

知识点

  • alert是一个属性,不是一个方法
  • 最终返回一个 Alert 实例,所以我们需要有变量去接住它,后续通过这个变量去操作alert窗口
  • 操作alert窗口的方法都 Alert 的方法

Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)的更多相关文章

  1. selenium+python之 辨识alert、window以及操作

    1.分辨 首先区别下alert.window和伪装对话框: alert,浏览器弹出框,一般是用来确认某些操作.输入简单的text或用户名.密码等,根据浏览器的不同,弹出框的样式也不一样,不过都是很简单 ...

  2. Selenium系列之--04 常见元素操作总结

    一.Selenium总共有八种定位方法  By.id()  通过id定位 By.name()  通过name 定位 By.xpath() 通过xpath定位 By.className() 通过clas ...

  3. 爬虫系列(九) xpath的基本使用

    一.xpath 简介 究竟什么是 xpath 呢?简单来说,xpath 就是一种在 XML 文档中查找信息的语言 而 XML 文档就是由一系列节点构成的树,例如,下面是一份简单的 XML 文档: &l ...

  4. AngularJs的UI组件ui-Bootstrap分享(九)——Alert

    alert指令会在页面上显示一条提示消息,效果是这样: 代码为: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" ...

  5. QApplication::alert 如果窗口不是活动窗口,则会向窗口显示一个警告(非常好用,效果就和TeamViewer一样)

    void QApplication::alert(QWidget * widget, int msec = 0)如果窗口不是活动窗口,则会向窗口显示一个警告.警报会显示msec 毫秒.如果毫秒为零,闪 ...

  6. java基础解析系列(九)---String不可变性分析

    java基础解析系列(九)---String不可变性分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---In ...

  7. java多线程系列(九)---ArrayBlockingQueue源码分析

    java多线程系列(九)---ArrayBlockingQueue源码分析 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 j ...

  8. 分布式系列九: kafka

    分布式系列九: kafka概念 官网上的介绍是kafka是apache的一种分布式流处理平台. 最初由Linkedin开发, 使用Scala编写. 具有高性能,高吞吐量的特定. 包含三个关键能力: 发 ...

  9. 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 ...

随机推荐

  1. 基于FPGA的RGB图像转灰度图像算法实现

    一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2 ...

  2. Leetcode1353_最多可以参加的会议数目

    题目地址 给定n个会议时间区间,会议不用全程参加,问最多能参加的数目. 时间区间按左端点排序,扫一遍,每一天把当天开始的区间结束时间加入,同时把这一天之前结束的区间删掉,然后贪心从最小堆取出结束时间的 ...

  3. scrapy爬虫-代理IP中间件

    class ProxyDownloaderMiddleware(object): # Not all methods need to be defined. If a method is not de ...

  4. 聊聊RabbitMQ那一些事儿之一基础应用

    聊聊RabbitMQ那一些事儿之一基础应用 Hi,各位热爱技术的小伙伴您们好,今年的疫情害人啊,真心祝愿您和您的家人大家都平平安安,健健康康.年前到现在一直没有总结点东西,写点东西,不然久了自己感觉自 ...

  5. 自然语言处理NLTK之入门

    环境:window10 + python3 一.安装NLTK pip install nltk # 或者 PyCharm --> File --> Settings --> Proj ...

  6. 7-35 jmu-python-求三角形面积及周长 (10 分)

    输入的三角形的三条边a.b.c,计算并输出面积和周长.假设输入三角形三边是合法整形数据. 三角形面积计算公式:  ,其中s=(a+b+c)/2. import math #导入math库 math.s ...

  7. springboot创建,自动装配原理分析,run方法启动

    使用IDEA快速创建一个springboot项目 创建Spring Initializr,然后一直下一步下一步直至完成 选择web,表示创建web项目 运行原理分析 我们先来看看pom.xml文件 核 ...

  8. 工作技术点小计14条 hybrid + animate 方向

    设置transition 动画的时候 , js直接设置duration 和 变化值不会起作用 , 需要先设置duration , 等一小会再设置变化值 安卓端 , 窗口不可见时 , window.in ...

  9. Python爬虫 抓肺炎疫情实时数据

    数据下载 网上一搜,首先搜到的是腾讯的疫情实时追踪,那就用这个数据源吧. 有了网址怎么抓数据呢?这里,可以从纷乱中找到最靠谱的下载方式.我习惯用FireFox浏览器,下面的讲解就以FireFox为例( ...

  10. spring boot actuator服务监控与管理

    1.引入actuator所需要的jar包 <dependency> <groupId>org.springframework.boot</groupId> < ...