Selenium操作:测试form表单

news/2024/10/15 22:45:01

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 Byclass 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):#用例1username=self.driver.find_element(By.ID,"username")#定位元素username.send_keys("admin")#账号:adminpwd=self.driver.find_element(By.ID,"pwd")#定位元素pwd.send_keys('123')#密码:123sleep(2)self.driver.find_element(By.ID,"submit").click()#提交#用例2self.driver.switch_to.alert.accept()#关闭提示print(username.get_attribute('value'))#获取输入的账号print(pwd.get_attribute('value'))#获取输入的密码#用例3username.clear()pwd.clear()sleep(2)self.driver.quit()if __name__=="__main__":case=Testcase()case.test_login()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/72026.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

优化远程桌面RDP,使用GPU和帧率60帧

1.平时在使用远程桌面的时候,会发现无法使用GPU,也就无法运行一些需要独立GPU的应用和游戏。 以下为开启方式: 在被远程的电脑上运行:开始->运行,输入gpedit.msc(家庭版没有)打开组策略。 在左侧导航到以下路径计算机配置-管理模板-Windows组件-远程桌面服务-远程桌面…

TomcatServlet -2024/10/15

idea中Maven部署Web项目 基本架构pom.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

实验1 现代C++基础课程

任务1 源代码task1.cpp1 // 现代C++标准库、算法库体验2 // 本例用到以下内容:3 // 1. 字符串string, 动态数组容器类vector、迭代器4 // 2. 算法库:反转元素次序、旋转元素5 // 3. 函数模板、const引用作为形参6 7 #include <iostream>8 #include <string>9 #inc…

7系XADC在PL端使用

关键词:XADC,PYNQ Z2, XADC IP核, PL 说明 : 不涉及xadc开发板,PCB设计,可以跳过前面看后面,不正确的地方可以交流沟通,待完善 一. 对于xadc基本了解 1. 基本属性 参考手册 : ug480Fig : XADC BLOCK DIAGRAM:从XADC block diagram中可以看出7系含有两个内部ad, ADCA,ADCB 同时可…

计量经济学(六)——时间序列滞后变量模型

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 滞后变量模型(Lagged Variable Models)是一种时间序列分析方法,主要通过引入自变量和因变量的滞后项来解释当前变量的行为。该模型在经济学、金融学中广泛…

Krita配置comfyui,ai绘图 记录

comfyui使用b站up、赛博佛祖秋葉aaaki的整合包。此地址下载ai插件 https://github.com/Acly/krita-ai-diffusion krita中安装下载好的插件,从文件导入python插件 打开ai绘图面板: 缺失节点使用复制链接地址 然后,在复制的地址后加上.git 后使用comfy UI manager通过git URL安…

ABP VNext 系列:框架启动流程以及依赖注入原理和源码分析

简单介绍 ABP VNext Github 地址:https://github.com/abpframework/abp 官网文档地址:https://abp.io/docs/latest 官网:https://abp.io/ABP VNext 框架是一个基于 ASP.NET Core 的完整基础架构,也就是我们现在称的 ABP 框架,它遵循软件开发最佳实践和最新技术来创建现代 …