网页测试,最避免不了的就是弹出框,但是弹出框你真的分的清吗?

  • Alert
  • prompt
  • comfirm

先来认识一下这三个弹窗

代码如下

<input id="alert" onclick="alert('这是一个alert')" type="button" value="alert" /> 
<input id="confirm" onclick="confirm('确定?');" type="button" value="confirm" />
<input id="prompt" onclick="var name = prompt('请输入你的名字:','请输入你的名字'); document.write(name) " type="button" value="prompt" />

OK,下面来看看如何处理他们

1.导入包,和导入ActionChains类似

from selenium.webdriver.common.alert import Alert

2.四种操作

  • alert.text                                获取弹出框的文本
  • alert.dismiss()          拒绝警告框,点击取消或者右上角X关闭
  • alert.accept()                        接受警告框,点击确定
  • alert.send_keys(value)         模拟输入,向prompt的文本框输入字符

3.实战

 from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time driver=webdriver.Firefox()
driver.get("File://E:/python/alert/alert.html")
time.sleep(2)
pop=Alert(driver) #和ActionChains一样,需要初始化alert的驱动 #Alert
driver.find_element_by_id("alert").click()
print("alert",pop.text) #获得alert弹框的内容
time.sleep(1)
pop.accept() #点击确定 '''
权限验证
有时在弹出框内需要验证我们的权限,即输入账号密码
可以使用authenticate(username, password)的方法
''' #confirm
time.sleep(2)
confirm=driver.find_element_by_id("confirm")
confirm.click()
print("confirm accept",pop.text) #获得alert弹框的内容
pop.accept() #点击确定
time.sleep(2) confirm.click()
time.sleep(2)
print("confirm dismiss",pop.text)
pop.dismiss() #点击取消
time.sleep(2) #prompt
driver.find_element_by_id("prompt").click()
print("prompt",pop.text) #获得alert弹框的内容
pop.send_keys("lalala") #输入文字
time.sleep(3)
pop.accept() driver.close()

弹出框测试

selenium_Alert的更多相关文章

  1. 多测师讲解selenium_alert弹框定位_高级讲师肖sir

    from selenium import webdriverfrom time import sleepdrvier=webdriver.Chrome()url=r'F:\dcs\DCS课程安排\se ...

随机推荐

  1. Java并发(一、概述)

    离上次写博客又隔了很久,心中有愧.在我不断使用Java的过程中,几乎都是拿来就用,就Java并发这块我还没有系统的梳理过,趁着国庆有空余时间,把它梳理一遍.以下部分内容参考相关书籍,以作学习之用,特此 ...

  2. jQuery ajax的提交

    1.利用jQuery中的aja提交数据,首先引入jQuery中的文件 2.jquery.form.js下载地址:http://vdisk.weibo.com/s/thY_x31gX0M-p?categ ...

  3. C#仪器数据文件解析-XPS文件

    XPS为微软推出的类似于Adobe PDF的一种文件格式,个人认为XPS很好,但毕竟PDF已经被大家所熟知,因此XPS的使用很少,也少有仪器数据输出为该格式. XPS百度百科:https://baik ...

  4. 【转】NAS群晖DSM 5.0-4458安装教程

    需要准备: 1.一个闲置的U盘,容量大于64M即可. 墙裂建议用如下U盘,可以隐藏成灰群晖,小巧方便. 闪迪(SanDisk)酷豆(CZ33)8GB U盘¥29.9京东商城    2.一台显示器,用于 ...

  5. Java面向对象 线程技术 -- 下篇

     Java面向对象 线程技术 -- 下篇 知识概要:              (1)线程间的通信           生产者 - 消费者 (2)生产者消费者案例优化 (3)守护线程 (4)停止线 ...

  6. Scala类型系统(sudden thought)

    http://docs.scala-lang.org/tour/lower-type-bounds.html中有一段代码 trait Node[+B] { def prepend(elem: B): ...

  7. CMake必知必会

    CMake 文档 https://cmake.org/cmake/help/v3.7/index.html 需要阅读的文档 item note link cmake-buildsystem(7) cm ...

  8. MySQL基础函数

    MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ...

  9. 企业微信开发之发放企业红包(C#)

    一.企业微信API 地址:http://work.weixin.qq.com/api/doc#11543 二.参数说明 1.发送企业红包 请求方式:POST(HTTPS)请求地址:https://ap ...

  10. MySQL锁类型以及子查询锁表问题、解锁

    MySQL中select * for update锁表的范围 MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主 ...