Python自动化测试遇到的一些坑

Python自动化测试遇到的一些坑

最近在公司里开始用Python做自动化测试工具,选择了使用Selenium做后台,使用PyQt5做界面,最后用Pyinstaller打包成exe,下面分别说说解决需求过程中遇到的一些坑。

Selenium

这一块遇到的主要就是浏览器相关的以及获取页面元素方面的坑。

  1. 浏览器相关:由于公司不能连接外网且统一使用配发的电脑,只能用IE或者Edge,最终选择了IE,原因是在Edge驱动的官网内找不到和最新Edge版本相匹配的浏览器驱动。于是使用IE浏览器和IE浏览器驱动IEDriverServer。这里需要注意的是IE驱动的版本必须和IE的版本对应,我是在IE看了下是哪一年的,然后去https://www.cnblogs.com/cmt/p/14580194.html找到那一年的版本,下载后放到了项目文件夹下(因为我后面打包要一起打包进去的)。注意:尽量下载32位的,64位的会出现bug,我遇到的bug是在网页上的输入框使用send_keys的时候特别慢。
  2. Selenium相关:由于网络问题或者网站本身的问题,经常会出现页面加载不出来或者加载过慢的情况。
    1. 第一种方式直接time.sleep()等待
    2. 第二种方式,使用以下代码:
      import selenium.webdriver.support.ui
      wait = ui.WebDriverWait(driver, 20)
      wait.until(lambda driver: driver.find_element_by_name(""))

      意义是等待某元素被找到

Pyinstaller

Pyinstaller的安装不用说了直接pip install。但是公司内部用pip下载的时候连接不上,因此从https://pypi.org/搜索需要的包下载。尽量下载xxx.whl格式的文件,下载后后缀改为压缩文件格式,解压出的两个文件夹移动到Python安装目录的Lib/site-packages下

cmd切换路径到pyinstaller-4.2下,执行python setup.py install,根据依赖关系添加其他包,包括altgraph,future,pefile,pyinstaller-hooks,pywin32-ctypes。

对于多文件打包,我们首先在cmd将路径切换到入口程序所在的目录,执行pyi-makespec -w 入口程序名.py,会在当前路径生成一个“入口程序名.spec”的文件,我们在该文件中配置打包信息。

Analysis中第一个列表内配置需要打包的所有py文件,可以写绝对路径。datas中以元组的形式添加资源文件,包括资源文件名和类型。除Analysis外,EXE中的name可以配置应用程序名称。

配置好打包信息的spec文件后,cmd依旧是在spec文件路径下,执行pyinstaller -D 入口程序名.spec 等待打包完成。打包完成后会在项目下生成一个build文件夹和一个dist文件夹,打包好的程序就在dist下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值