Selenium操作:测试form表单
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()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步