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

  • 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. VTL(Velocity Templates Language,即Velocity模板语言)初识语法总结

    1.velocity是一门基于Java语言的视图表现层模板引擎,它可以取代jsp,比jsp更高效. 2.velocity变量的定义与引用 (1).定义一个变量:#set ($a = "vel ...

  2. HDU1423 LCIS

    1,先离散化,然后DP: 注意这个解法中,dp[i][j][k]代表a序列中前i个和b序列中前j个数结尾为k或小于k时的最大. 但是由于i是单增(一次1->n),而j反复变化(多次1->m ...

  3. bootstrap 响应式导航条模板(含下拉菜单,弹出框)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. IEnumerable,ICollection,IList,List之间的区别

    做C#的同学们,都知道,一类只能有一个继承类,但可以实现多个接口.这句话就告诉我们:IEnumerable,ICollection,IList,List区别了 // 摘要: // 公开枚举器,该枚举器 ...

  5. Spring ——依赖注入配置一些知识点

    依赖注入 依赖注入的原理与实现 依赖注入(DI)和依赖查找(Dependency Lookup)共同组成 控制反转(IoC).从原理的角度来说,依赖注入和控制反转是没 有不同的,可以看作是从两个角度来 ...

  6. win10 UWP 你写我读

    想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在win10让写出一个你写我读的软件很简单. 我们需要一个类MediaElement来播放,因为window ...

  7. OpenSCAD 建模:矿泉水瓶花洒

    下载地址:https://github.com/ZhangGaoxing/openscad-models/tree/master/Sprinkle 代码: module screw(r=){ ::]) ...

  8. LINUX 笔记-ubuntu 配置 jdk 环境

    在 /etc/profile 文件尾添加 JAVA_HOME=/opt/jdk1.8.0JRE_HOME=${JAVA_HOME}/jre   PATH=$PATH:$HOME/bin:$JAVA_H ...

  9. 【译】10分钟学会Pandas

    十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...

  10. Swift 之Protocol在cocoa中的使用范例搜集(一)

    protocol Reusable: class { static var reuseIndentifier: String {get} static var nib: UINib? {get} } ...