有的网站会弹出类似如下图的警告弹窗,你会发现这种弹窗在html源码中怎么也定位不到,接下来将介绍这种弹窗的处理方式。

其实这种弹窗是不属于html的元素的,他是属于浏览器自带的弹窗,所以用定位元素的方法是定位不了的。

浏览器的警告弹窗一共有三种:

  第一种:(有【确定】【取消】按钮的)

  解决方案:

  1.先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.text方法可以获取到弹窗上的文本

  3.accept()方法相当于点击确定按钮

  4.dismiss()方法相当于点击取消按钮

  代码:

  time.sleep(2)  a = driver.switch_to.alert     #  新方法,切换alert  # a = driver.switch_to_alert()   #  老方法,切换alert  print(a.text)                    # 获取弹窗上的文本  a.accept()                       # 确认,相当于点击[确定]按钮  # a.dismiss()                      # 取消,相当于点击[取消]按钮

  结果:

    输出弹窗上的文本内容

  

第二种:(只有【确定】按钮的)

解决方案(其实这种和第一种弹窗的处理方法一样的):

  1.先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.text方法可以获取到弹窗上的文本

  3.accept()方法相当于点击确定按钮

  4.dismiss()方法相当于关闭弹窗

  代码:

  time.sleep(2)  a = driver.switch_to.alert     #  新方法,切换alert  # a = driver.switch_to_alert()   #  老方法,切换alert  print(a.text)                    # 获取弹窗上的文本  a.accept()                       # 确认,相当于点击[确定]按钮  # a.dismiss()                      # 取消,相当于点击关闭弹窗

第三种:(有输入对话框的)

  解决方案(其实这种弹窗处理只是多加了一个方法):

  1.先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.accept()方法相当于点击确定按钮

  3.dismiss()方法相当于关闭弹窗

  4.send_keys()相当于在弹窗的输入框中输入文本

  代码:

  time.sleep(2)  a = driver.switch_to.alert     #  新方法,切换alert  # a = driver.switch_to_alert()   #  老方法,切换alert  a.send_keys('Kevin-liutianping') # 在弹窗上的输入框中输入文本内容  a.accept()                       # 确认,相当于点击[确定]按钮  # a.dismiss()                      # 取消,相当于点击[取消]按钮

selenium自动化之处理浏览器警告弹窗的更多相关文章

  1. Selenium自动化测试之启动浏览器

    Selenium自动化测试之启动浏览器 一.Eclipse新建java工程 1.新建java工程:File->New->Java Project,输入Project name:如AutoT ...

  2. Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

    前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...

  3. Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。

    Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息.   本文链接:https://blog.csdn.net/qq_38161040/art ...

  4. Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退

    Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退   1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...

  5. Python+Selenium自动化-安装模块和浏览器驱动操作方法

    Python+Selenium自动化-安装模块和浏览器驱动操作方法 1.安装模块文件 pip install selenium 2.安装浏览器驱动 我们主要用的浏览器驱动有chrome浏览器.fire ...

  6. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...

  7. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  8. 爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器

    一.图片懒加载 懒加载 :    JS 代码  是页面自然滚动    window.scrollTo(0,document.body.scrollHeight)   (重点) bro.execute_ ...

  9. 浏览器控制之 selenium,phantomJs谷无头浏览器

    目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...

随机推荐

  1. java的四舍五入

    四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了.在讲解之间我们先看如下一个经典的案例: public static void main(String[] ...

  2. 在 Linux 下搭建 Git 服务器(yum安装)

    服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...

  3. Dubbo实践(十三)Export

    Spring在启动Dubbo服务端应用时,会实例化ServiceBean<T>并设置配置属性,然后调用export方法: @SuppressWarnings({"unchecke ...

  4. lwip BUG ,导致 系统 死机

    pcb->snd_queuelen >= pbuf_clen(next->p) sys_arch_assert: in ..\..\User\lwip\src\core\tcp_in ...

  5. vue.js数组追加合并与对象追加合并的

    今天在做懒加载的时候遇到的问题,在网上搜索找到的答案不是很清晰,就来写一下,方便以后使用. 直接上图吧 官方连接:https://cn.vuejs.org/v2/guide/reactivity.ht ...

  6. Java解析Excel之应用Reflection等技术实现动态读取

    目录树 背景 技术选型 问题分析 技术要点及难点分析 源码分析 测试用例 背景 Tip:因为产品提的需求我都开发完了,进行了项目提测:前天老大走过来说:你用spring-boot开发一个解析Excel ...

  7. javascript的执行机制—Event Loop

    既然今天要谈的是javascript的事件循环机制,要理解事件循环,首先要知道事件循环是什么. 我们先从一个例子来看一下javascript的执行顺序. <script> setTimeo ...

  8. tp框架如何处理mysql先排序在分组

    $giModel = M('GroupIntegral'); $gi_table = $giModel->order('id desc')->limit('999')->buildS ...

  9. Solr 同义词搜索

    1.  进入solr配置目录 cd /usr/local/solr/solrhome/collection1/conf vi schema.xml 增加配置节 <fieldType name=& ...

  10. JavaScript的迭代函数与迭代函数的实现

    前言 ​ 如果对技术很自信,请直接看 实现的源码 ​ 如果想回顾一下基础,请按文章顺序阅读 说到迭代方法,最先想到的是什么?forEach还是map,迭代的方法ES5提供了5种方法 以下定义来自 Ja ...