python3 selenium 如何处理异常情况
使用场景:
1、元素只有在某一特定情况下才会出现
2、元素定位不到
使用方法:
try:
except exceptions.NoSuchElementException:
举例说明:
# _._ coding=utf-8 _._
"""
:author: 花花测试
:time: 2017.05.08
:content: 处理元素定位的异常情况
"""
from selenium import webdriver
from datetime import datetime
from selenium.common import exceptions
import random
import time
"""
http://www.kgc.cn/personal_management/17087.shtml:这个课程不是直播课
http://www.kgc.cn/java/25349.shtml:这个课程是直播课
"""
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/personal_management/17087.shtml')
try:
end_time = driver.find_element_by_xpath(
'/html/body/div[2]/div/div/div[2]/div[2]/div[1]/div[2]/div[3]/div/span[2]').text
now_time = datetime.now().strftime('%Y-%m-%d %H:%M')
print('直播结束时间为:{0}'.format(end_time))
print('当前时间为:{0}'.format(now_time))
time.sleep(1)
if end_time >= now_time:
print('这个课程是直播未开始或者是直播已经开始的课程')
else:
print('这个课程是直播已结束的课程')
except exceptions.NoSuchElementException:
print('您选择的这节课程不是直播课')
driver.quit()
print('测试结束')
说明:
1、我的脚本都是以课工场为例,如果有什么不明白的地方,欢迎大家留言,我看的话会及时给大家解答
2、辛苦原创,转载请注明出处
python3 selenium 如何处理异常情况的更多相关文章
- 【JVM虚拟机】(9)-- JVM是如何处理异常的
[JVM虚拟机](9)-- JVM是如何处理异常的 上篇博客我们简单说过异常信息是存放在属性表集合中的Code属性表里,那么这篇博客就单独讲Code属性表中的exception_table. 在讲之前 ...
- python3+selenium框架设计02-自动化测试框架需要什么
什么是自动化测试框架 自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式.平台执行脚本,良好的日志和报告去跟踪脚本执行结果. 关于自动化测试框架的定义有很多,在我大致理 ...
- Python3 Selenium定位不到元素常见原因及解决办法
Python3 Selenium定位不到元素常见原因及解决办法 一.问题描述 在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况: 报错信息: no such e ...
- Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
Python3 Selenium WebDriver网页的前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 通过selenium webdr ...
- 转 Python3 错误和异常/ Python学习之错误调试和测试
########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...
- python021 Python3 错误和异常
Python3 错误和异常 作为Python初学者,在刚学习Python编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍. Python有两种错误很容易辨认:语法错误和异常. ...
- Python3+selenium 报错处理:“selenium.common.exceptions.NoAlertPresentException: Message: No alert is active”
一.说明 在使用python3+selenium写自动升级程序的时侯,碰到一个弹出对话框需要点击确认的场景.弹出的对话框如下图所示. 对于弹框各种资料都说通过switch_to.alert属性获取对话 ...
- python3 selenium模块Chrome设置代理ip的实现
python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...
- Android(java)学习笔记82:我们到底该如何处理异常?
我们到底该如何处理异常? 原则: 如果该功能内部可以将问题处理,用try,自己能解决就自己解决问题. 如果处理不了,交由调用者处理,这是用throws,自己不能解决的问题,我们就抛出去交个调用者解决这 ...
随机推荐
- Android设计模式之代理模式
代理模式: 为其他对象提供一种代理以控制对这个对象的访问 Subject类定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy inte ...
- PHP流程管理,堪比小小程序
这个流程管理是从用户登录界面开始,然后提交申请,页面逐级审核通过.这个做起来其实挺简单,只是在某些逻辑方面需要 好好考虑一下. 登录页面就不再多说了,如果要存session的话,我们可以建一个假的登录 ...
- Dive in python Chapter3 实例
def buildConnectionString(params): """Build a connection string from a dictionary Ret ...
- js原生API----查找dom
一.祖先接口Node,及他的扩展接口EventTarget Node是一个接口,许多DOM类型从这个接口继承,并允许类似地处理(或测试)这些各种类型. 以下接口都从Node继承其方法和属性: Docu ...
- [.net 面向对象程序设计深入](8)认识.NET Core
[.net 面向对象程序设计深入](8)认识.NET Core 1,概述 .NET 经历14年,在Windows平台上的表现已经相当优秀,但是“跨平台.开源”却是其痛点,从16年开 ...
- MYSQL优化_MYSQL分区技术[转载]
MySQL分区技术是用来减轻海量数据带来的负担,解决数据库性能下降问题的一种方式,其他的方式还有建立索引,大表拆小表等等.MySQL分区按照分区的参考方式来分有RANGE分区.LIST分区.HASH分 ...
- redis实现队列消息的ack
由于公司提供的队列实在太过于蛋疼而且还限制不能使用其他队列,但为了保证数据安全性需要一个可以有ack功能的队列. 原生的redis中通过L/R PUSH/POP方式来实现队列的功能,这个当然是没办法满 ...
- Access中的自定义排序设置方式
一.问题起因 最近有网友提问说,Access中在用查询指定排序方式时,为什么只有升序跟降序,怎么米有自定义排序了?竟然比Excel都弱啊! 其实这是对Access的误解,我这就给大家来解一下疑惑.案例 ...
- POPTEST老李谈Debug和Release的区别(c#) 1
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- Java中利用BigInteger类进行大数开方
在Java中有时会用到大数据,基本数据类型的存储范围已经不能满足要求了,如要对10的1000次方的这样一个数据规模的数进行开方运算,很明显不能直接用Math.sqrt()来进行计算,因为已经溢出了. ...