day:26 selenium——封装用例

news/2025/3/28 18:26:16/文章来源:https://www.cnblogs.com/junting/p/18784608

一.根据场景设计场景用例

1 .一条一条的自动化用例编写

(1)登录场景

(2)登录==用户管理

(3)登录==系统管理

(4)登录==退出

案例:

登录场景1

from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()

案例2:登录--用户管理

#登录==用户管理
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
# 点击用户管理
dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()

案例3:登录--系统管理

#登录==系统管理
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
# 点击系统管理
dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()

案例4:

#登录==退出
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
#退出
dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()

二.封装用例(将用例放在每一个函数中)

from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):def __init__(self):passdef dl(self):dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面sleep(2)#输入账号dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录dx.find_element_by_id('loginBtn').click()def  yhgl(self):dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面sleep(2)#输入账号dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录dx.find_element_by_id('loginBtn').click()sleep(2)# 点击用户管理dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()def  xtgl(self):dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面sleep(2)#输入账号dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录dx.find_element_by_id('loginBtn').click()sleep(2)# 点击系统管理dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()def  quit(self):dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面sleep(2)#输入账号dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录dx.find_element_by_id('loginBtn').click()sleep(2)#退出dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()if __name__ == '__main__':ldx=Cms()# ldx.dl()# ldx.yhgl()# ldx.quit()ldx.xtgl()

  三.优化用例

 

from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):def __init__(self):passdef dl(self):self.dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象self.dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面sleep(2)#输入账号self.dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码self.dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录self.dx.find_element_by_id('loginBtn').click()def  yhgl(self):self.dl() #调用登录sleep(2)# 点击用户管理self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()def  xtgl(self):self.dl()# 点击系统管理sleep(2)self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()def  quit(self):self.dl()#退出sleep(2)self.dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()
if __name__ == '__main__':ldx=Cms()# ldx.dl()# ldx.yhgl()
    ldx.quit()# ldx.xtgl()

 

四.将登录写在构造函数中

from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):def __init__(self):self.dx = webdriver.Chrome()  # 创建一个驱动谷歌浏览器的对象self.dx.get("http://49.233.201.254:8080/cms/manage/login.do")  # 通过get打开页面sleep(2)#输入账号self.dx.find_element_by_id("userAccount").send_keys("admin")sleep(2)# 输入密码self.dx.find_element_by_id("loginPwd").send_keys("123456")sleep(2)#点击登录self.dx.find_element_by_id('loginBtn').click()def  yhgl(self):sleep(2)# 点击用户管理self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()def  xtgl(self):# 点击系统管理sleep(2)self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()def  quit(self):#退出sleep(2)self.dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()
if __name__ == '__main__':ldx=Cms()# ldx.yhgl()# ldx.quit()ldx.xtgl()

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day:26 selenium——滚动条、key类

一.滚动条 代码:window.scrollTo(0,2000) from selenium import webdriver #导入selenium模块中的webdriver from selenium.webdriver.support.select import Select import time dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象 dx.get("https://www.jd.c…

day:27 unittest实战梳理

一.将cms写入到unittest框架中 1.main调用所有用例import unittest from selenium import webdriver from time import * class Cms(unittest.TestCase):@classmethoddef setUpClass(cls) -> None:pass@classmethoddef tearDownClass(cls) -> None:passdef s…

Redis问题 - Redis-cli.exe无法连接

Redis-cli.exe无法连接解决:打开redis-sever.exe 再回到redis-cli正常

超时

1接口超时2异常

openGl2

图元装配(Primitive Assembly) Primitive 也就是对顶点坐标,进行装配,形成形状 裁剪 原文:片段着色器运行之前会执行裁切(Clipping)。裁切会丢弃超出你的视图以外的所有像素,用来提升执行效率 裁剪默认在片段着色前 最后一个阶段 在着色后,是Alpha测试和混合。会进行深度…

Mac安装php8.3配置Swoole环境

1、查看可安装的PHP版本brew search php 2、安装8.3的版本brew install php@8.3 3、设置环境变量vim ~/.zshrc放入上述第二步完成后提示的内容export PATH="/opt/homebrew/opt/php@8.3/bin:$PATH"export PATH="/opt/homebrew/opt/php@8.3/sbin:$PATH" e…

buuctf re rsa

先下载文件,然后打开压缩包有这样的文件,enc为二进制文件,key丢入文档读取文件就可以读取。得到n和e,然后取尝试分解n。分解成功,得到p和q,然后进行rsa解密算法的设计,因为enc为二进制文件,所以需要用open函数读取,然后使用rsa库文件进行解密。解出flag是flag{decrypt…

中高通量基因测序芯片有何不同-基因测序-测序芯片-flowcell-代加工-外协加工-委外加工-激光代加工-河南郑州-芯晨微纳(河南)

中高通量基因测序芯片的区别主要体现在样本处理能力、应用场景、技术设计以及数据产出效率等方面。以下是两者的详细对比: 中通两芯片外观:高通量芯片外观:定义与核心目标中通量基因测序芯片目标:适合中等规模样本的测序需求(例如数百至数千个样本/反应),平衡通量与成本…

ui自动化测试——unittest框架(自动化框架)

一、自动化框架介绍 1、unittest 框架是python中自带的框架 2、作用:管理和组织测试用例 当我们写的用例越来越多,我们就要考虑用例的编写的规范和组织,以便于后期的维护 3、常见的自动化框架:po框架、pytest 框架、unittest框架(我们讲解) 4、unitest 框架自带标准的库:…

代码采纳率从 22% 到 33%,通义灵码辅助数据库智能编码实践

通义灵码本质上是一个AI agent,它已经进行了大量的优化。然而,为了更完美或有效地调用模型的潜在能力,我们在使用时仍需掌握一些技巧。通常,大多数人在使用通义灵码时会直接上手,这是 AI agent 的一个优势,即 zero shot 使用,无需任何上下文即可直接使用通义灵码的能力。…

信创麒麟V10操作系统安装Kong网关

总览 随着国家对信息安全和自主可控技术的日益重视,信创改造正成为各大企业及政府部门的重要任务。公司目前在x86架构的Red Hat系统上部署了Kong网关2.2.1,并且通过官方RPM包实现了快速部署。为了顺应信创转型,现阶段需要在aarch64架构的信创麒麟v10系统上部署Kong网关。 由…

wsl kali 系统安装gvm (openVAS)

1. 更新系统 首先,确保系统是最新的: sudo apt update sudo apt upgrade -y2. 安装GVM(OpenVAS) Kali Linux官方仓库中已经包含了GVM(OpenVAS)的安装包。你可以通过以下命令安装: sudo apt install gvm3. 初始化GVM 安装完成后,需要初始化GVM。运行以下命令: sudo gvm…