python + selenium实现浏览器上页面功能自动测试

前言

​ 这里使用html + thymeleaf做了一个简单的登录页面,后台使用java做了一个伪登录功能,通过python编写自动登录的脚本,目的是为了通过这个简单的demo,来熟悉selenium库的使用,实现通过python + selenium编写自动运行的用于测试界面功能的脚本。

环境准备

系统和语言环境准备

系统windows
登录功能自动测试脚本python 3.6.4
用于测试的前端html + js(layui 、thymeleaf)
用于伪登录功能的后端java1.8

其他环境

python操作前端代码的库与驱动

安装webdriver
  • 准备工作
    • 驱动的下载地址
    • 这个是chrome的driver,找到对应版本下载,如果是firefox需要其他的driver
    • 解压chromedriver_win32(70-73).zip,对应chrom70-73版本
    • 将解压后的chromedriver.exe放至chrom的安装目录下(可通过任务管理器右键打开文件位置)
      在这里插入图片描述
  • 配置环境变量
    • 将chrom的根目录配置在path下
      在这里插入图片描述
安装selenium-3.141.0

参考链接

  • cmd进入解压后的文件夹,执行

    python setup.py install
    

脚本编写

这里的开发工具使用的是PyCharm

  • 提取码zvle

demo:

import json
import logging.config
import unittest

import time
from selenium import webdriver

# 登录功能自动测试脚本
class LoginTest (unittest.TestCase):
    browser = None
    url = None
    # 加载日志配置文件
    logging.config.fileConfig('logger.conf')
    logger = logging.getLogger('login_test')

    def test_login(self):
        # 打开json配置文件
        with open('../conf.json', 'r') as conf:
            # 加载配置
            configure = json.load(conf)
            webd = configure['webdriver']
            self.url = configure['url']
            self.username = configure['username']
            self.pwd = configure['password']
        if not self.browser:
            self.browser = webdriver.Chrome(executable_path=webd)

        # 访问url对应的网址
        self.browser.get(self.url)
        # 睡眠5s,等待页面响应,这里睡眠等待也可以替换成其他方式,这里暂不使用
        time.sleep(5)
        # 找到id为L_email的元素,填充对应的值
        self.browser.find_element_by_id("L_email").send_keys(self.username)
        self.browser.find_element_by_id("L_pass").send_keys(self.pwd)
        # 找到id为submitBotton的按钮(登录),点击
        self.browser.find_element_by_id("submitBotton").click()
        time.sleep(10)
        # 退出浏览器
        self.browser.quit()

if __name__ == '__main__':
    unittest.main()

说明:

  1. 加载驱动

    self.browser = webdriver.Chrome(executable_path=webd)

    webd通过读取配置文件的json来获取,是上述安装配置的webdriver路径

  2. 访问网址

    self.browser.get(self.url)

  3. 通过id获取元素

    self.browser.find_element_by_id("L_email")

    这里的元素是页面的html元素,需要指定id,还可以根据class等方式获取,但不能根据多个class获取元素

  4. 对于获取到的元素的操作

    self.browser.find_element_by_id("L_pass").send_keys(self.pwd)

    这个是为input输入值

    self.browser.find_element_by_id("submitBotton").click()

    这个是点击按钮

  5. 退出浏览器

    self.browser.quit()

在这里插入图片描述

以上是对于selenium库的简单应用,可以根据自己的需求编写适合的脚本来进行自动测试

登录页面与后台源码、python源码github

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

future_1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值