Python+Selenium练习(二十八)-处理Alert弹窗

  目标:如何通过Selenium方法处理网页Alert弹窗。

  练习场景:和处理iframe类似,都是通过switch—_to方法。可以通过执行JS来增加一个弹窗。

  具体代码:

# coding= utf-8
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")
time.sleep(1)
driver.execute_script("window.alert(‘这是一个Alert弹窗‘);")
time.sleep(2)
message = driver.switch_to_alert().text
print(message)
driver.switch_to_alert().accept() #点击弹窗里面的确定按钮
print(‘点击确定成功‘)
driver.execute_script("window.alert(‘这是一个Alert弹窗‘);")
driver.switch_to_alert().dismiss() #点击弹窗上面的X按钮
print(‘点击X成功‘)
driver.close()

  

注意;

driver.switch_to_alert().accept()

  

这是一个老方法,在有些编辑器(后面会介绍一款Python的IDE工具)会提示这个方法划横线,说明在最新Selenium在Pyhton支持包里,这个方法被丢弃,虽然还是可以用,现在新的方法是switch_to.alert(),用这个最新方法,我测试了下,无法模拟点击确定和点击关闭弹窗按钮,所以这个地方选择了旧的方法switch_to_alert()

参考原文链接:https://blog.csdn.net/u011541946/article/details/70140291

  

原文地址:https://www.cnblogs.com/zhaocbbb/p/12652358.html

时间: 2024-11-09 03:54:52

Python+Selenium练习(二十八)-处理Alert弹窗的相关文章

Python+Selenium笔记(十八):持续集成jenkins

(一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块. pip install xmlrunner (二)安装jenkins (1)   下载jekins https://jenkins.io/download/ 下载适合自己的,我是下载长期稳定版的. (2)   解压后运行jenkins.msi这个文件,然后一直下一步就是了. (3)   http://localhost:8080 登录 (4)   根据提示输入密码后,下一步. (6)   这里第一个应该是默认

python学习(二十八)URL编码和解码&签名规则需求练习

1.url编码和url解码 打开浏览器,输入"python基础教程",点击搜索后,地址栏会有一长串的类似于 %DFBGN这种 就是url编码对应的搜索内容,具体如下: https://www.so.com/s?q=python%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B&src=srp&fr=360chrome_newtab_search&psid=9fcfb50581a9a0358a7459af7832c302 那么如何用代码来进行

Python开发【第十八篇】:MySQL(二)

Python开发[第十八篇]:MySQL(二) 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid > 2 ) AS A WHERE A. NAME > 'alex'; 临时表搜索 1.创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t

企业搜索引擎开发之连接器connector(二十八)

通常一个SnapshotRepository仓库对象对应一个DocumentSnapshotRepositoryMonitor监视器对象,同时也对应一个快照存储器对象,它们的关联是通过监视器管理对象DocumentSnapshotRepositoryMonitorManagerImpl实现的 DocumentSnapshotRepositoryMonitorManagerImpl类要实现那些行为,先查看其实现接口DocumentSnapshotRepositoryMonitorManager定义

每日算法之二十八:Longest Valid Parentheses

Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", which has length = 2. Another example is &

angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构

ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入angular-resource.min.js文件 2.在模块中依赖ngResourece,在服务中注入$resource var HttpREST = angular.module('HttpREST',['ngResource']); HttpREST.factory('cardResource

Welcome to Swift (苹果官方Swift文档初译与注解二十八)---199~208页(第四章-- 流程控制)

Value Bindings (绑定值) 在switch的case中可以绑定一个或者多个值给case体中的临时常量或者变量,这个成为绑定值. 代码样例: let anotherPoint = (2, 0) switch anotherPoint { case (let x, 0):   println("on the x-axis with an x value of \(x)") case (0, let y):   println("on the y-axis with

Cocos2d-x 3.x 图形学渲染系列二十八

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 昨天,刚从丈母娘家回来,继续博客的更新,接着Cocos2d-x 3.x图形学渲染系列二十七继续系列二十八的编写. 接下来读取FBX模型文件信息,首先要做的是把读取的模型信息进行归类并

工作那些事(二十八)项目管理模式:项目型、职能型、矩阵型

在一个项目中,项目经理有多大权利,可以动用哪些资源,取决于项目管理模式,项目管理模式由公司的CTO来决定.简而言之,项目管理有三种模式:项目型.职能型.矩阵型. 下面先看看这三种模式,对项目经理来说都是什么作用. 1项目型 将所有的能兵强将集结在一起,财务部.业务部.IT管理部等的精英们脱离原有的岗位.形成一个正式的部门,并由项目经理领导.这样的优势是项目经理的权利很强.资源充足,所有的项目经理都希望有这样的团队.但是就公司而言,单独团队对公司整体资源的浪费,是显而易见的:对被抽调的个人而言,脱