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()