我们先看大概的界面图片:
登陆界面:
注册界面:
登陆后的界面:
添加事物后的界面:
接下来我们详细的分析一下python的自动化代码,有不对的地方希望大家指出
register:注册模块(第一个模块字符比较大)
# -*-coding:UTF-8 -*- from selenium import webdriver
#这里需要引入selenium库,它是能够帮助我们识别操控浏览器的库
import os
#OS是我们操作dos系统时需要引入的库 os.system("taskkill /f /im chromedriver.exe")
#杀死这个chromedriver进程,因为每次启动都会打开,所以需要kill,这里用的chrome浏览器,打开方式时chromedriver.exe。需要放在代码同一目录下,不明白的可以搜索
driver = webdriver.Chrome()
'''webdriver的意思:
Controls the ChromeDriver and allows you to drive the browser.
You will need to download the ChromeDriver executable from
http://chromedriver.storage.googleapis.com/index.html
这里的意思是:webdriver的意思是控制ChromeDriver和驱动浏览器,需要下载chromediriver驱动,需要注意对应版本。
driver是一个类,可以理解我们得到了一个浏览器窗口
'''
#下面都是调用对象,对应的方法(不知什么是类和对象,可以去看看慕课网的廖雪峰老师的课) driver.get("http://172.27.35.4:8080/mt")
#进入对应的网址,这里是我自己搭建的一个小项目 driver.maximize_window()
#窗口最大化 driver.find_element_by_link_text("接口测试课程").click() #找到网页中的链接
#点击 driver.find_element_by_link_text("点击..").click() driver.find_element_by_id("firstName").send_keys("jie")
#find_element_by_id()找到网页中的id
#send_keys()传值
driver.find_element_by_id("lastName").send_keys("feng") driver.find_element_by_id("userName").send_keys("fengjie") driver.find_element_by_id("email").send_keys("fengjie@163.com") driver.find_element_by_id("password").send_keys("111") driver.find_element_by_xpath("//button[@type='submit']").click()
#通过xpath查找元素,如果不了解,可以先去学习html基础,推荐菜鸟教程。
login:登陆模块
# -*-coding:UTF-8 -*- from selenium import webdriver from pymysql import connect
#这里需要引入python调用数据的库 import os os.system("taskkill /f /im chromedriver.exe") driver = webdriver.Chrome() driver.get("http://172.27.35.4:8080/mt") driver.maximize_window() driver.find_element_by_link_text("接口测试课程").click() conn = connect(host='172.27.35.4', user='root',database='scott', port=3306)
#这里是连接数据库,输入对应的数据。不知道有哪些参数,可以看源码,我看了一下参数太多了,这里就不列出来了 cursor = conn.cursor()
"""Create a new cursor to execute queries with
cursor是方法
"""这是cursor的注释,我们可以理解为实例化一个游标来执行查询"""
query = "select * from userinfo where user_name='fengjie'"
#定义一个变量,其实就是我们要进行查询的语句,不记得了推荐菜鸟教程学习哈。
cursor.execute(query)
#execute()是cursor的方法,执行sql语句,我们通过query传参,传入sql语句,得到的结果我们放在了游标里面 result = cursor.fetchall() #将游标的结果一行一行的输出到result中,result变成了一个二维列表 driver.find_element_by_id("j_username").send_keys(result[0][5])
#选择数据中的姓名字段,输入数据 driver.find_element_by_id("j_password").send_keys(result[0][4])
#选择数据中的密码字段,输入密码 driver.find_element_by_xpath("//button[@type='submit']").click()
#点击提交
add:添加事务模块
# -*-coding:UTF-8 -*- from pymysql import connect from selenium import webdriver from selenium.webdriver.support.select import Select import os os.system("taskkill /f /im chromedriver.exe") driver = webdriver.Chrome() driver.get("http://192.168.5.3/mt") driver.maximize_window() driver.find_element_by_link_text("接口测试课程").click() conn = connect(host='192.168.5.3', user='root', database='scott', port=3306) cursor = conn.cursor() query = "select * from userinfo where user_name='fengjie'" cursor.execute(query) result = cursor.fetchall() driver.find_element_by_id("j_username").send_keys(result[0][5]) driver.find_element_by_id("j_password").send_keys(result[0][4]) driver.find_element_by_xpath("//button[@type='submit']").click() username = result[0][5] query = "delete from todo where user_name=(select id from userinfo where user_name='%s')" % username #删除todo表中的数据,里面是添加的事务,因为我们要验证添加是否成功,所以要先删除原有的事务 cursor.execute(query)
#执行 conn.commit() #提交 driver.find_element_by_id("inputName").send_keys("caichang_test") Select(driver.find_element_by_id('priority')).select_by_value('MEDIUM')
#选择网页中的下拉框 driver.find_element_by_xpath("//input[@is-open='opened']").send_keys("20-June-2019")
#选择输入日期,xpath方法 driver.find_element_by_xpath("//button[@ng-click='isOpen = false']").click()
#点击确定 driver.find_element_by_xpath("//button[@type='submit']").click()
#点击提交 query2 = "select count(*) from userinfo,todo where userinfo.id=todo.user_name and userinfo.user_name='%s'" % username cursor.execute(query2) result2 = cursor.fetchmany()
#查询插入的数据 # 在实际工作中,要写入excel或其他文件中等,还要纳入日志等 if result2[0][0] == 1: print "测试成功" else: print "测试失败" driver.quit()