首页 > 其他分享 >Selenium操作:测试form表单

Selenium操作:测试form表单

时间:2024-10-15 22:32:42浏览次数:5  
标签:__ form self Selenium 表单 file path

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

标签:__,form,self,Selenium,表单,file,path
From: https://www.cnblogs.com/jongjongjong/p/18416773

相关文章

  • Web端输入表单配合扫码枪
    聚焦输入框,扫码枪输入,自动换行,若重复扫码,删除</template><div><!--***--><!--扫码枪交接对话框--><el-dialogv-dialogDragtitle="报告交接":visible.sync="isScannerHandoverDialogOpen"width="400px"......
  • Transformers: 引领自然语言处理的革命性工具
    transformers引言:Transformers的崛起在人工智能和自然语言处理(NLP)领域,Transformers模型的出现无疑是一场革命。而HuggingFace公司开发的Transformers库,更是将这场革命推向了一个新的高度。作为一个开源项目,Transformers为研究人员和开发者提供了一个强大而灵活的工具,使他......
  • HiT-SR:基于层级Transformer的超分辨率,计算高效且能提取长距离关系 | ECCV'24
    Transformer在计算机视觉任务中表现出了令人鼓舞的性能,包括图像超分辨率(SR)。然而,流行的基于Transformer的SR方法通常采用具有二次计算复杂度的窗口自注意力机制,导致固定的小窗口,限制了感受野的范围。论文提出了一种将基于Transformer的SR网络转换为分层Transformer(HiT-SR)的通用策......
  • 基于LSTM-Transformer混合模型实现股票价格多变量时序预测(PyTorch版)
    前言系列专栏:【深度学习:算法项目实战】✨︎涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记忆......
  • Transformer模型知多少?
    2017年,Transformer模型的提出确实让AI进入了一个新的纪元,尤其是在自然语言处理(NLP)领域,成为了许多现代AI技术的基石。那么,Transformer到底是什么,它的核心机制“自注意力机制”如何运作?要理解这些复杂的概念并不容易,但我将尽力通过通俗的语言和逐步解释,让小白也能理解这个革命性的模......
  • Stanford CS149 -- Assignment 1: Performance Analysis on a Quad-Core CPU
    作业描述及代码参加:CS149-asst1程序1生成view1时加速比与线程数的关系如下:线程数加速比22.0431.6942.5452.5763.2673.5584.11生成view2时加速比与线程数的关系如下:线程数加速比21.7532.2542.6753.146......
  • C# WinForm 菜单项的大小、高宽的手动控制
    转载:C#WinForm菜单项的大小、高宽的手动控制-清潭荷韵-博客园(cnblogs.com)感觉有用,怕搜不到,于是转一下控制菜单项的第一级的下级菜单项的大小:直接通过(ContextMenuStrip对象).AutoSize=false、(ContextMenuStrip对象).Size=newSize(50,50)就可以控制大小。控制......
  • 使用开源的 Vue 移动端表单设计器创建表单
    FcDesignerVant版是一款基于Vue3.0的移动端低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。源码下载 | 演示地址 | 帮助文档本项目采用Vue3.0和ElementPlus进行移动端页面构建,......
  • CogVideoX:Text-to-Video Diffusion Models with An Expert Transformer
    研究背景背景介绍:这篇文章的研究背景是文本到视频模型的快速发展,特别是Transformer架构和扩散模型的应用。早期尝试预训练和扩展Transformer生成视频已经显示出巨大潜力,如CogVideo和Phenaki。扩散模型在多模态生成方面也取得了显著进展,包括视频生成。研究内容:该问题的......
  • waveform editor安装使用
    参考链接[https://wavedrom.com/tutorial.html][https://blog.csdn.net/Alex497259/article/details/126307849]下载官网网址[https://wavedrom.com/]使用signal代码表示{signal:[{name:"test",wave:"0123456789"},{name:...,wave:...}]}name为姓名,wave中每......