python程序不时显示fail to execute script_最好用Python 自动化框架,拿走不谢~系列篇(3)...

点击上方 蓝字关注我们

e403402a0d6cdd062c4b5df94b74426e.png

Python3+Selenium Web自动化测试案例分享(4)——页面基础类方法

本章节主要是封装selenium库的一些基础操作方法,如:元素定位、截图、元素通用操作、切换frame、警示框处理等等,basePage是最底层操作页面的方法,只要是web页面一些常用的操作都可以写在该基类中,后面有需要的地方直接调用即可。

一、basePage.py

f215debdcddd34fe222d26f928681eb0.png

# _*_ coding:utf-8 _*_import time,osfrom selenium.webdriver.support.ui import WebDriverWait             #导入显示等待等待from selenium.webdriver.support import expected_conditions as EC    #导入判断方法from Public import getPathInfo,log
log_info =log.logger #log方法class BasePage(object):"""
基本类,用于所有页面的继承"""def __init__(self, driver):
self.driver = driverdef _open(self, url, pagetitle):"""
打开网页
:param url: 网址
:param pagetitle: 关键字"""
self.driver.maximize_window() #浏览器最大化
self.driver.implicitly_wait(30) #显示等待
self.driver.get(url) #打开指定网站assert pagetitle in self.driver.title, log_info.error("页面源码中不存在该关键字!") #断言打开页面是否正确def find_element(self, *loc):"""
重写定位元素"""try:#WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc)) #判断元素是否存在
WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element(*loc).is_displayed()) #判断元素是否存在return self.driver.find_element(*loc) #返回定位元素except Exception as e:
log_info.error('%s页面未找到%s元素' % (self, loc))
self.get_windows_img() #截图def switch_frame(self, loc):"""
切换frame"""return self.driver.switch_to.frame(loc)def script(self, src):"""
定义script方法,用于执行js脚本"""
self.driver.execute_script(src)def get_windows_img(self):"""
截图"""
image_path=getPathInfo.join_cwd('Report\\Images\\') #拼接截图存放目录if not os.path.exists(image_path): #判断目录是否存在
os.mkdir(image_path) #创建目录文件
nowtime=time.strftime("%Y%m%d%H%M%S") #当前时间变量
image_name=image_path +nowtime+ '.png' #截图路径try:
self.driver.get_screenshot_as_file(image_name) #截图
log_info.info("截图保存地址:%s" % image_name)print('screenshot:', nowtime+'.png') #打印screenshot关键字,报告中显示截图except NameError as e:
log_info.error("截图保存失败! %s" % e)#self.get_windows_img()

f215debdcddd34fe222d26f928681eb0.png

来源:https://www.cnblogs.com/airb/p/13490251.html

-------- THE END --------

?

最新开班信息:索要课表加微信:18910737736

1、python自动化21期实战班:本周日(10月18日开班)涵盖web UI自动化、移动端 UI自动化、接口测试、持续集成、三大测试框架、加多个项目实战,网络与现场同步授课,欢迎索取课表!

2、python测试开发第6期实战班:本周日(10月18日开班),课程全面升级,手把手带你开发接口测试平台!

3、零基础转行软件测试就业班 11月16日 加开一期,统招本科学员可先就业后收费!

真正的0元入学计划来了~

03d7fc968a7b2bec0878a64e9a102062.png

602a51a7198b835cccc21ebe1ce536b2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值