python如何判断是否有弹出框_Selenium2+python自动化47-判断弹出框存在(alert_is_present)【转载】...

前言

系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常。那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了。

一、判断alert源码分析

class alert_is_present(object):

""" Expect an alert to be present."""

"""判断当前页面的alert弹窗"""

def __init__(self):

pass

def __call__(self, driver):

try:

alert = driver.switch_to.alert

alert.text

return alert

except NoAlertPresentException:

return False

1.这个类比较简单,初始化里面无内容

2.__call__里面就是判断如果正常获取到弹出窗的text内容就返回alert这个对象(注意这里不是返回Ture),没有获取到就返回False

二、实例操作

1.前面的操作步骤优化了下,为了提高脚本的稳定性,确保元素出现后操作,

2.实现步骤如下,这里判断的结果返回有两种:没找到就返回False;找到就返回alert对象

3.先判断alert是否弹出,如果弹出就点确定按钮accept()

三、参考代码

# coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()

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

driver.get(url)

mouse = WebDriverWait(driver, 10).until(lambda x: x.find_element("link text", "设置"))

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

WebDriverWait(driver, 10).until(lambda x: x.find_element("link text", "搜索设置")).click()

# 选择设置项

s = WebDriverWait(driver, 10).until(lambda x: x.find_element("id", "nr"))

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

# 点保存按钮

js = ‘document.getElementsByClassName("prefpanelgo")[0].click();‘

driver.execute_script(js)

# 判断弹窗结果 交流QQ群: 232607095

result = EC.alert_is_present()(driver)

if result:

print result.text

result.accept()

else:

print "alert 未弹出!"

原文:http://www.cnblogs.com/caoj/p/7814165.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 图像旋转补色,旋转互补色光学错觉

HTML导入代码模板:Choose a colorRedGreenBlueCyanMagentaYellowOrangeYellow greenCyan greenCyan blueVioletRoseOr use system color pickerComplementary color illusionInstructions Stare at the black cross in the middle of the colored circles without m…

vscode 调试_如何使用VSCode调试JS?

更多精彩,请点击上方蓝字关注我们!序言做前端开发的朋友经常需要使用Visual Studio Code编辑代码,很多朋友就想在VSCode调试JS代码,下面我们就介绍下如何配置操作。一、环境准备首先安装好VSCode,准备好一个JS项目&…

基于matlab的信号合成与分解,基于matlab的信号合成与分解

基于matlab的信号合成与分解 - I - 摘 要 为了便于进行周期信号的分析与处理,常要把复杂的周期信号进行分解,即将周期 信号分解为正余弦等此类基本信号的线性组合,通过对这些基本信号单元在时域和频域 特性的分析来达到了解信号特性的目的。本…

python spangt_python怎么爬去spanlt;/span中间标签的内容

展开全部这个要看你使用32313133353236313431303231363533e4b893e5b19e31333363373765的是什么页面解析工具了,html """item1item2"""# 使用 scrapy 的Selectorfrom scrapy.selector import Selector# scrapy 的选择器支持 css和xpa…

php页面空白如何解决,php页面空白怎么回事 php出现空白页的解决方法

当出现php空白页时,怎么查看php报告的错误信息呢?具体方法如下:一、通过配置 php.ini 中的参数设置php的报错级别可以在 php.ini 中适当的位置增加一行error_reporting e_all注: php.ini 中有一些例子,比如本地的 php…

基站位置查询系统_木牛导航网络基站服务免费了!——更便捷、更高效、更省心!...

布谷飞飞劝早耕,春锄扑扑趁初晴。千层石树通行路,一带水田放水声。《山行》-- 姚鼐(Photo by Quang Nguyen Vinh)农业生产作为人类最传统的产业自古以来都讲究及时耕种,即抢农时根据气候适宜而进行季节性生产随着科技的发展,农业生…

php cgi进程很多win2008,php cgi.exe 太多 在 windowserver2008 apache 这个怎么样限制下?...

php cgi.exe 太多 在 windowserver2008 apache 这个怎么样限制下?mip版 关注:61 答案:2 悬赏:70解决时间 2021-02-24 01:48已解决2021-02-23 09:13php cgi.exe 太多 在 windowserver2008 apache 这个怎么样限制下?最佳答案2021-02-23 09:57可以设置最…

wince怎么刷carplay_Carplay支持仪表/HUD显示 宝马为全球超750000辆车发布OTA升级

【太平洋汽车网 新车频道】日前,宝马官方宣布,将从10月19日起为全球超过750000辆汽车提供iDrive 7.0最新版本的最重要的一次OTA升级。据悉,这项升级将有多项新功能加入,并重点支持Apple Carplay将导航等信息显示在HUD抬头显示和全…

php 如何调用redis,php如何调用redis

一、windows下php连接redis1、下载phpredishttps://github.com/nicolasff/phpredis/downloads2、根据你php版本,选择安装vc库,可以通过phpinfo();查看3、安装php_redis.dll模块将下载下来的php_redis模块放到php安装目录下的/ext/中,并在php.…

文本多标签分类python_Scikitlearn多标签分类

我正在尝试使用Scikit学习来学习文本的多标签分类,我正在尝试调整Scikit附带的一个初始示例教程,用于使用wikipedia文章作为培训数据对语言进行分类。我试图在下面实现这一点,但代码仍然为每个返回一个标签,我希望最后一个预测返回…

php命令执行无法重定向输出,php – CodeIgniter 3重定向功能无法正常工作

我正在重新编码和更新我的CMS我已经在CI2工作到CI3,而在我的生活中我无法让我的重定向功能在CI3上为我工作.除了重新设计我的模型之外,我的代码到目前为止与我的CI2代码完全相同.最初我怀疑我的布局钩子是罪魁祸首,但我完全禁用了他,我仍然没有到达任何地方.public function lo…

python read()函数_Python File read()方法

Python File read()方法概述read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有。语法read() 方法语法如下:fileObject.read();参数 size -- 从文件中读取的字节数。返回值返回从字符串中读取的字节。实例以下实例演示了 read() 方法的使…

oracle数据库11gr2,Oracle 11g R2 X64数据库安装

最近在安装Linux下的Oracle环境,折腾了很久,遇到了不少问题,最后终于搞定了,于是写下下文记录安装过程1.Linux环境配置准备环境:Linux:cents os 6.5,DB:Oracle 11g R2 X64&#xff0…

oracle ref游标用法,[置顶] Oracle 参照游标(SYS_REFCURSOR)使用

I在这篇文章中介绍如何使用存储过程处理参考游标1.创建必要的表和样例数据CREATE TABLE USER_INFO(User_ID integer primary key,--Primary keyUser_Name varchar2(20),sex varchar2(2));insert into user_info(user_name,sex) values(David.Tian,M);insert into user_info(use…

python教授_Python为何如此优秀?斯坦福教授告诉你!

Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C 这样的语言,它的这两个优势让其在开发者中大受欢迎。诚然,它有点老了,但仍是80后啊 —— 至少没有 Cobol 或者 Fortran 那么老。而且&#xff0c…

php数组转集合,php-Laravel-将数组转换回集合

我只想在商品表中获取类别的集合.我的类别表有300个项目.如果在产品表中附加了类别,我只想要一个集合. $categories集合仅应产生约10个类别,因为只有约10个产品具有不同的category_id$products DB::table(products)->groupBy(category_id)->get();foreach($products as …

python 设计模式 观察者_设计模式Python实现-观察者模式

观察者模式(发布-订阅模式 Publish Subscribe Pattern):定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者,是它们能够自动更新自己,是一种行为设计模式。观察者模式的结构1,Publisher 会…

oracle loop index,oracle index 聚集因子

简单看一下clustering_factor简单的说CLUSTERING_FACTOR 用于INDEX 的有序度和表的混乱度之间比较b*tree index是经过排序的例如 INDEX中 记录的第一个rowid指向 表所在DATAFILE 中 BLOCK#1 第1行 计数器 记为1,第2个rowid 指向 BLOCK#2 由于改变了块 所以 计数器加…

分析以太网帧结构_传统以太网中的——中继器及集线器

1.1 Repeater 中继器中继器工作在以太网的第一层即物理层, 两端口设备,主要功能是放大信号,从而延长信号在同一网络上传输的长度。中继器的存在主要是解决解决电信号长距离传播过程中的衰减问题,以增加信号强度和传播距离。Figure…

根据oracle入库数据进行告警,Oracle 启动故障案例之--ORA-600 [4193]错误

ORA-600[4193] 这个错误也是与UNDO 有关系,MOS 上有几篇相关的说明文章.一.MOS说明1.1 ORA-600 [4193] WhenTrying To Open The Database [ID 763566.1]SymptomsCopying database from one server to another server and getting an ORA-600 [4193] error when tryi…