我們先看大概的界面圖片:
登陸界面:
注冊界面:
登陸后的界面:
添加事物后的界面:
接下來我們詳細的分析一下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()