• Python自动化测试:web自动化测试——Selenium框架



    前言:使用Selenium框架进行简单web端UI自动化测试,简单的以百度搜索为例,复杂的模拟访问12306登陆、购票操作。

    Selenium介绍

    • Selenium是ThroughtWorks公司一个强大的开源用于浏览器web自动化测试的工具集/框架;
    • 支持多平台、多浏览器、多语言去实现自动化测试;
    • Selenium2将浏览器原生的API封装成WebDriver API(WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器),可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),实现像真正的用户在操作一样;
    • pip组件是一个现代通用的Python包管理工具;

    web自动化实现原理

    在这里插入图片描述

    环境准备

    1)Selenium+python环境搭建

    python下载:http://python.org/getit;
    下载setuptools :http://pypi.python.org/pypi/setuptools
    下载pip :【python 的安装包管理工具】https://pypi.python.org/pypi/pip
    下载selenium:http://pypi.python.org/pypi/selenium
    下载PyCharm:https://www.jetbrains.com.cn/pycharm/download/download-thanks.html?platform=windows&code=PCC

    安装步骤

    1. 安装Python,安装编辑工具pycharm
      注意:pip是基于setuptools的,若安装python,就已经安装了pip了,可python的第三方包目录下(D:\CStools\python3.10.5\Lib\site-packages)看一看有没有pip包。
    2. 安装setuptools:将下载后的文件夹解压,CMD命令窗口cd定位到该解压目录下/在解压的文件夹中使用Shift+鼠标右键打开Powershell窗口输入python setup.py install
    3. 安装pip:连网状态(pip install pip),不联网状态需将下载后的文件夹解压,在解压后的目录下命令行中输入命令python setup.py install,再切换到现在的Python安装路径下(博主自己的路径为:D:\CStools\python3.10.5\Scripts),输入easy_install pip
    4. 安装selenium:
      * 若联网状态则可:在Python安装路径(D:\CStools\python3.10.5\Scripts)下输入pip install -U selenium;
      * 若未联网,已下载了相关压缩包解压至D:\CStools\python3.10.5\Lib\site-packages目录下,命令窗口定位到该目录输入:python setup.py install

    注意:命令行CMD从默认路径C盘切换到D盘需输入D:,再cd D盘下的路径

    环境变量的配置
    1. 双击安装Python-自动配置环境变量:
      在这里插入图片描述
      2.手动配置环境变量:
      在这里插入图片描述
      安装PyCharm:如下设置,可自定义安装路径,再一路next,最后install
      在这里插入图片描述

    2)浏览器驱动

    驱动下载

    下载驱动前查看浏览器版本:
    在这里插入图片描述
    火狐浏览器—驱动下载地址:https://github.com/mozilla/geckodriver/releases
    谷歌浏览器—驱动下载地址:
    * 114及之前的版本:下载地址入口
    * 116版本:下载入口
    * 117/118/119版本:下载入口
    在这里插入图片描述

    驱动环境配置(以火狐浏览器为例)

    1. 将下载好的驱动包解压并放入安装包中(不同浏览器操作类似):
      在这里插入图片描述
    2. 将浏览器安装路径复制下来配置到环境变量路径中:C:\Program Files\Mozilla Firefox
      在这里插入图片描述
    3. 将驱动添加到Python安装路径下:

    3)版本检查

    • 以管理员的身份运行CMD,先验证你的python版本:
    python --version
    
    • 1

    在这里插入图片描述

    • 查看setuptools是否安装正确:

    • 查看pip安装情况:

    pip --version     # Python2.x 版本命令
    pip3 --version    # Python3.x 版本命令
    
    • 1
    • 2

    在这里插入图片描述

    • 查看selenium版本与安装是否成功:
    pip show selenium
    
    • 1

    在这里插入图片描述

    • 也可以整个查看pip:
    pip list
    
    • 1

    在这里插入图片描述

    4)其他异常情况排查

    版本不一致

    1. Google浏览器输入chrome://version/查看版本
    2. 驱动版本与浏览器版本不一致:重新下载安装配置正确的版本(最新浏览器对应最新驱动)
    geckodriver.exe -h
    
    • 1

    在这里插入图片描述
    2. setuptools版本错误或与Python不兼容:常常会提示NameError: name ‘execfile’ is not defined说明安装版本不对,可卸载重新安装正确版本。

    未激活

    原因:博主之前由于学校的项目下载了Anaconda其自带有python版本,python处于conda环境中,导致python需要激活,显示:
    在这里插入图片描述
    解决方法:

    1. 命令窗口输入 conda activate 进入(base)
    2. 输入conda info --envs,查看Anaconda的位置,复制base *后面的位置信息
    3. 输出conda activate base后面的路径

    卸载、降低/升级版本

    # 卸载setuptool安装指定版本
    pip uninstall setuptools
    pip install setuptools==39.1.0
    # 卸载selenium
    pip uninstall selenium
    # 安装清华镜像 selenium
    pip install selenium==4.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    web自动化测试实例test.py

    以下代码实现:获取火狐浏览器驱动并控制打开浏览器主页,返回打印主页标题,退出控制

    #  coding = utf-8
    from selenium import webdriver
    
    driver = webdriver.Firefox()
    driver.get('http://www.baidu.com')
    print(driver.title)
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    运行结果:
    在这里插入图片描述

    程序异常提示

    (待更新)

    复杂案例:模拟12306登陆与搜索车次选座-购票

    仅作为web自动化测试案例学习,不做违法使用!!!
    (代更新)

  • 相关阅读:
    2022-9-01 第七小组 学习日记 (day56)AJAX
    面向对象特性之继承
    SpringCloud Gateway基于nacos实现动态路由
    高校网络安全体系建设及零信任安全架构应用的探索
    OSPF不同网络类型建立邻居实验
    MySQL表操作:提高数据处理效率的秘诀(进阶)(2)
    LeetCode 2886.改变数据类型
    Java进阶篇
    RT-Thread 原子操作(学习)
    ArcGIS实验教程——实验四十八:ArcGIS制图表达入门及案例教程
  • 原文地址:https://blog.csdn.net/weixin_47921628/article/details/134409509