不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。

alert\confirm\prompt弹出框操作主要方法有:

text() :获取文本值

accept() :点击"确认"

dismiss() :点击"取消"或者叉掉对话框

send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

QQ交流群:232607095

(版权所有:"软件测试部落"微信公众号)
一、认识alert\confirm\prompt

     1.如下图,从上到下依次为alert\confirm\prompt,先认清楚长什么样子。

Selenium2+python自动化13-Alert

    2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后用浏览器打开)

<html>  

    <head>  

       <title>Alert</title>  

    </head>  

    <body>  

    <input id = "alert" value = "alert" type = "button" onclick = "alert('您关注了软件测试部落微信公众号吗?');"/>  

    <input id = "confirm" value = "confirm" type = "button" onclick = "confirm('确定关注微信公众号:软件测试部落?');"/>  

    <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入微信公众号:','软件测试部落'); document.write(name) "/>    

    </body>   

</html>  
稿源:微信开发www . qixoo.com
(本篇原文出自微信公众号:软件测试部落)
二、alert操作

    1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点右上角x,取消弹出框

Selenium2+python自动化13-Alert
三、confirm操作

   1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点取消按钮或点右上角x,取消弹出框

(本篇原文出自微信公众号:软件测试部落)

Selenium2+python自动化13-Alert
四、prompt操作

   1.先用switch_to_alert()方法切换到alert弹出框上

    2.可以用text()方法获取弹出的文本 信息

    3.accept()点击确认按钮

    4.dismiss()相当于点右上角x,取消弹出框

    5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容

Selenium2+python自动化13-Alert
五、select遇到的坑

    1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)

    2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点

    3.解决办法:在select操作后,做个click()点击操作

(本篇原文出自微信公众号:软件测试部落)

Selenium2+python自动化13-Alert

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()
六、最终代码

# coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

import time

driver = webdriver.Firefox()

url = "https://www.baidu.com"

driver.get(url)

driver.implicitly_wait(20)

# 鼠标移动到“设置”按钮

mouse = driver.find_element_by_link_text("设置")

ActionChains(driver).move_to_element(mouse).perform()

driver.find_element_by_link_text("搜索设置").click()

# 通过text:select_by_visible_text()

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()

driver.find_element_by_link_text("保存设置").click()

time.sleep(5)

# 获取alert弹框

t = driver.switch_to_alert()

print t.text

t.accept()

(本篇原文出自微信公众号:软件测试部落)
      这一篇应该比较简单,Alert相关的内容比较少,虽然有一些页面也有弹窗,但不是所有的弹窗都叫alert。alert的弹出框界面比较简洁,是调用的系统弹窗警告框,没花里胡哨的东西,还是很容易区分的。小伙伴们在学习过程中遇到疑难杂症,可以在论坛www.hordehome.com提问,小编能解决的话,会发专题详细介绍selenium(java+python)QQ交流群:232607095(加群验证码:hordehome)

查看selenium系列课程,关注下方公众号,回复:selenium

selenium2+python自动化入门系列1-环境安装

selenium2+python自动化入门系列2-pycharm

selenium2+python自动化入门系列3-操作浏览器

selenium2+python自动化入门系列4-元素定位

selenium2+python自动化入门系列5-xpath定位

selenium2+python自动化入门系列6-CSS定位

selenium2+python自动化入门系列7-登录案例

selenium2+python自动化入门系列8-定位一组元素

selenium2+python自动化入门系列9-操作元素

selenium2+python自动化入门系列10-多窗口(第一季完)

Selenium2+python自动化系列11-iframe

Selenium2+python自动化系列12-select

Selenium2+python自动化13-Alert的更多相关文章

  1. Selenium2+python自动化61-Chrome您使用的是不受支持的命令行标记:--ignore-certificate-errors

    前言 您使用的是不受支持的命令行标记:--ignore-certificate-errors.稳定性和安全性会有所下降 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrom ...

  2. Selenium2+python自动化47-判断弹出框存在(alert_is_present)

    前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(ex ...

  3. Selenium2+python自动化61-Chrome浏览器(chromedriver)【转载】

    前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的. 一.Chrome遇到问题 1. ...

  4. Selenium2+python自动化47-判断弹出框存在(alert_is_present)【转载】

    前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(ex ...

  5. Selenium2+python自动化23-富文本(自动发帖)

    前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...

  6. Selenium2+python自动化24-js处理富文本(带iframe)

    前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...

  7. Selenium2+python自动化7-xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  8. Selenium2+python自动化28-table定位

    前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...

  9. Selenium2+python自动化43-判断title(title_is)

    From: https://www.cnblogs.com/yoyoketang/p/6539117.html 前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取 ...

随机推荐

  1. 分布式监控系统Zabbix-3.0.3-完整安装记录(6)-微信报警部署

    Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式. 现在由于微信使用的广泛度,越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推 ...

  2. GIT 专贴

    1.官网 git-scm.com github.com 代码库 2.源码

  3. delphi数组作为参数传值

    在函数中如果数组的个数不定,可以使用开放数组参数 实参可以接受静态数组和动态数组 procedure p1(a:array of Byte); begin ShowMessage( IntToHex( ...

  4. 微软职位内部推荐-Software Development Engineer 2

    微软近期Open的职位: SDE II Organization Summary: Engineering, Customer interactions & Online (ECO) is l ...

  5. 未能解析此远程名称:'nuget.org' 的解决方法

    今天用Nuget下一个程序包时,发现Nuget挂了: 未能解析此远程名称:'nuget.org' . 浏览器打开  http://nuget.org  失败. 使用cmd命令 输入nslookup n ...

  6. mysql-advanced-5.6.23-linux-glibc2.5-x86_64安装

    0,二进制安装: mysql-advanced-5.6.23-linux-glibc2.5-x86_64.zip   1,软件包 mysql-advanced-5.6.23-linux-glibc2. ...

  7. MySQL学习指引

    mysql指引 1,mysql基本安装 2,mysql多实例安装与维护 3,备份恢复 备份数据库 分备数据库 分备表 恢复数据库

  8. mousedos网络批量部署xp

    小时候对这个东西很好奇,不知道什么原理.一直觉得很好玩.现在研究了下,总结如下 软件的操作步骤很讲究,稍微不慎,则就需要重新来过 知识点: 1,掌握诺顿ghost分区为gh文件 2,学会清理至一个干净 ...

  9. ubuntu16.04安装eclipse

    1.下载jdk , jdk-8u77-linux-x64.tar.gz 2.下载 eclipse, eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz 注:我下载的都 ...

  10. Asp.Net的两种开发方式

    来源:http://www.zhidao91.com/asp-net/ 在经过对.Net平台深入的学习以后,我发现很多语言开发动态网站时,它的后台逻辑都差不多是相同的,今天在这里我给大家来聊聊在.Ne ...