from表單是經常測試的用例,使用者登入、註冊等都會用到form表單,本文簡單設計了一個使用者登入的form表單,並對該form表單進行測試
一、自定義form表單
1、用到的元件
如下圖,圖中定義了一個登入介面的form表單,用到的表單元素:type="text"; type="submit"
2、程式碼示例
新建HTML檔案
檔案中輸入程式碼
點選檢視程式碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="javascript:alert('hello')">
Username:<input type="text" name="username" id="username"><br>
Password:<input type="text" name="pwd" id="pwd"><br>
Submit:<input type="submit" value="submit" id="submit">
</form>
</body>
</html>
二、form表單測試
1、定位表單元素
(1)獲取form表單路徑
(a)當前檔案所在路徑
path = os.path.abspath(__file__)#獲取當前完整路徑,即絕對路徑
#print(file_path)
輸出:C:...\desktop\demo.py
(b)當前路徑的父目錄
path = os.path.dirname(os.path.abspath(__file__))#獲取當前路徑的父目錄
print(path)
輸出:C:...\desktop
(c)form表單完整路徑
file_path = 'file:///'+path + '/form.html'#獲取form表單完整路徑
print(file_path)
輸出:C:...\desktop\form.html
(2)載入form表單
self.driver.get(file_path)
2、輸入測試值
測試值1:輸入賬號和密碼並提交
username=self.driver.find_element(By.ID,"username")#定位元素
username.send_keys("admin")#賬號:admin
pwd=self.driver.find_element(By.ID,"pwd")#定位元素
pwd.send_keys('123')#密碼:123
sleep(2)
self.driver.find_element(By.ID,"submit").click()#提交
結果1:彈出提示框,提示“Hello”
測試值2:獲取輸入的賬號密碼
self.driver.switch_to.alert.accept()#關閉提示
print(username.get_attribute('value'))#獲取輸入的賬號
print(pwd.get_attribute('value'))#獲取輸入的密碼
結果2:控制檯輸出賬號密碼
測試值3:清空賬號密碼
username.clear()
pwd.clear()
結果3:輸入框中賬號密碼被清空
點選檢視程式碼
from time import sleep
from selenium import webdriver
import os
from selenium.webdriver.common.by import By
class Testcase:
def __init__(self):
self.driver=webdriver.Edge()
#path = os.path.abspath(__file__)#獲取當前完整路徑,即絕對路徑
path = os.path.dirname(os.path.abspath(__file__)) #獲取當前路徑的父目錄
file_path = 'file:///'+path + '/form.html'#獲取form表單完整路徑
self.driver.get(file_path)#載入form表單
#print(file_path)
def test_login(self):
#用例1
username=self.driver.find_element(By.ID,"username")#定位元素
username.send_keys("admin")#賬號:admin
pwd=self.driver.find_element(By.ID,"pwd")#定位元素
pwd.send_keys('123')#密碼:123
sleep(2)
self.driver.find_element(By.ID,"submit").click()#提交
#用例2
self.driver.switch_to.alert.accept()#關閉提示
print(username.get_attribute('value'))#獲取輸入的賬號
print(pwd.get_attribute('value'))#獲取輸入的密碼
#用例3
username.clear()
pwd.clear()
sleep(2)
self.driver.quit()
if __name__=="__main__":
case=Testcase()
case.test_login()