我們先看大概的界面圖片:
登陸界面:

注冊界面:

登陸后的界面:

添加事物后的界面:

接下來我們詳細的分析一下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()
