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()
Selenium操作:测试form表单的更多相关文章
- Checkbox框全选操作,form表单提交与jquery ajax提交两种处理方式
//1.jquery ajax<script type="text/javascript"> $(function(){ var basePath = $(" ...
- java:JavaScript2:(setTimeout定时器,history.go()前进/后退,navigator.userAgent判断浏览器,location.href,五种方法获取标签属性,setAttribute,innerHTML,三种方法获取form表单信息,JS表单验证,DOM对象,form表单操作)
1.open,setTimeout,setInterval,clearInterval,clearTimeout <!DOCTYPE> <html> <head> ...
- Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作
一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
- 第83天:jQuery中操作form表单
操作form表单 1. 属性操作 设置属性: // 第一个参数表示:要设置的属性名称 // 第二个参数表示:该属性名称对应的值 $(selector).attr(“title”, “传智播客”); 获 ...
- Form表单之复选框checkbox操作
input复选(checkbox): <label>input复选1组:</label> <input type="checkbox" name=&q ...
- jQuery操作Form表单元素
Web开发中常常须要操作表单,form表单元素有select.checkbox.radio.textarea.button.file.text.hidden.password等. 当中checkbox ...
- Django之form表单操作
小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 ...
- 前端笔记:React的form表单全部置空或者某个操作框置空的做法
1.全部置空的做法,一般在弹出框关闭后,需要重置该form所有表单: this.props.form.resetFields(); 2.针对某个操作框置空的做法 例如,form表单里有一个部门和一个张 ...
- form表单,css简介,css选择器,css样式操作
form表单 简介 表单在Web网页中用以让访问者输入数据,当提交表单时,表单中输入的数据被打包传递给Web服务器端的程序 以处理,从而使得Web服务器与用户之间具有交互功能. 表单实现前后台交互:用 ...
随机推荐
- Committer 迎新!这次是来自阿里云的同学
截至今天,Apache DolphinScheduler 项目在 GitHub 上的 Star 数已突破 10.6K,贡献者人数也突破了 470 人.社区的不断壮大,离不开每位 Contributor ...
- Linux:移动当前目录的前N个文件到目标文件夹下
#移动当前目录的前N个文件到指定文件夹.其中一点代表的是当前目录.两点代表的是上一级目录.subfoleder1代表的是目标目录. mv `ls | head -N` ./subfolder1/ #这 ...
- SMU Autumn 2023 Round 2(Div.1+2)
SMU Autumn 2023 Round 2(Div.1+2) C. Chaotic Construction 把环展开的话就是\(1 \sim 2n\),若\(D\)的位置放上路障的话,在这个展开 ...
- odoo openErp 随笔
环境: win7 x64 Python 2.7.18 nodejs pip: C:\> python --version C:\> pip --version C:\> cd \Co ...
- Drools决策表实践运用
Drools 决策表的使用与说明 Drools决策表的使用 官方文档决策表说明 决策表使用方式 执行drl代码及结果 Drools决策表的使用 官方文档决策表说明 Drools 决策表的使用 16.7 ...
- 基于PaddleOCR + NLP实现证件识别
基于PaddleOCR + NLP实现证件识别 PaddleOCR识别 paddleOCR安装 安装 anconda虚拟环境(可参考yolov5的安装教程) paddleOCR识别 PaddleNLP ...
- java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 问题解决
目录 报错情况 分析原因 解决方法 本文author:@愷龍 报错情况 在一次使用JSP的jstl时候按照正常引入jstl和使用for each标签出现了如下报错: 分析原因 经过一番调查研究发现原因 ...
- Charles的https抓包方法及原理/下载ssl/http证书【转】
Charles的https抓包方法及原理/下载ssl/http证书 本文的Charles,适应windows/MAC/IOS/Android,避免抓包HTTPS失败和乱码: charles如果不配 ...
- C#自定义控件—指示灯
C#用户控件之指示灯 在体现通讯状态.运行状态等用一个靓眼的指示灯如何做? 思路(GDI) 外环用笔绘制(Pen),内圆用画刷(SolidBrush); 两个方法(用笔画圆,用画刷填充圆的内部): 绘 ...
- 15 Python模块
本篇是 Python 系列教程第 15 篇,更多内容敬请访问我的 Python 合集 一个模块其实就是一个文件(以.py结尾).使用模块的好处是便于维护和重用代码. 要创建一个模块,只需编写一个新的文 ...