我们先看大概的界面图片:
登陆界面:
注册界面:
登陆后的界面:
添加事物后的界面:
接下来我们详细的分析一下python的自动化代码,有不对的地方希望大家指出
register:注册模块(第一个模块字符比较大)
#-*-coding:UTF-8 -*-
from selenium importwebdriver
#这里需要引入selenium库,它是能够帮助我们识别操控浏览器的库importos
#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 importwebdriverfrom pymysql importconnect
#这里需要引入python调用数据的库importos
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()