前言

这里使用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的安装目录下(可通过任务管理器右键打开文件位置)

python能否有内置浏览器 python 浏览器_python

  • 配置环境变量
  • 将chrom的根目录配置在path下

python能否有内置浏览器 python 浏览器_测试_02

安装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()

python能否有内置浏览器 python 浏览器_测试_03

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

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