Selenium操作:測試form表單

jongjongjong發表於2024-10-15

from表單是經常測試的用例,使用者登入、註冊等都會用到form表單,本文簡單設計了一個使用者登入的form表單,並對該form表單進行測試


一、自定義form表單

1、用到的元件

如下圖,圖中定義了一個登入介面的form表單,用到的表單元素:type="text"; type="submit"

image


2、程式碼示例

新建HTML檔案
image

檔案中輸入程式碼

點選檢視程式碼
<!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”

image


測試值2:獲取輸入的賬號密碼
self.driver.switch_to.alert.accept()#關閉提示
print(username.get_attribute('value'))#獲取輸入的賬號
print(pwd.get_attribute('value'))#獲取輸入的密碼
結果2:控制檯輸出賬號密碼image

測試值3:清空賬號密碼
username.clear()
pwd.clear()
結果3:輸入框中賬號密碼被清空

image

點選檢視程式碼
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()

相關文章