Python自动化之selenium 封装(9.2)
一、自动化用例
案例:
用例1:cms环境 登录
from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome()
dx.get("http://192.168.163.128:8080/cms/manage/login.do")
dx.find_element_by_name("userAccount").send_keys("admin")
dx.find_element_by_name("loginPwd").send_keys("123456")
sleep(1)
dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
用例2:cms环境中登录--退出
有问题
from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome()
dx.get("http://192.168.163.128:8080/cms/manage/login.do")
dx.find_element_by_name("userAccount").send_keys("admin")
dx.find_element_by_name("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
用例3:cms 登录--系统管理--退出 流程
from selenium import webdriver
from time import *
dx=webdriver.Chrome()
dx.get("http://192.168.163.128:8080/cms/manage/login.do")
dx.find_element_by_name("userAccount").send_keys("admin")
dx.find_element_by_name("loginPwd").send_keys("123456")
sleep(1)
dx.find_element_by_xpath("html/body/div/div/form/div[3]/label/input").click()
sleep(1)
dx.find_element_by_xpath("html/body/div/div/form/div[4]/input[1]").click()
dx.maximize_window()
sleep(1)
dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()
sleep(3)
dx.find_element_by_link_text("退出").click()
=========================================================
二、将三条用例写入到一个类中管理
from selenium import webdriver
from time import sleep
class cms(object):
def __init__(self):
pass
def dl(self):
self.dx = webdriver.Chrome()
self.dx.get("http://cms.duoceshi.cn/manage/login.do")
self.dx.find_element_by_name("userAccount").send_keys("admin")
self.dx.find_element_by_name("loginPwd").send_keys("123456")
self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
def xtgl(self):
dx = webdriver.Chrome()
dx.get("http://cms.duoceshi.cn/manage/login.do")
dx.find_element_by_name("userAccount").send_keys("admin")
dx.find_element_by_name("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_xpath("html/body/div/div/form/div[3]/label/input").click()
sleep(2)
dx.find_element_by_xpath("html/body/div/div/form/div[4]/input[1]").click()
dx.maximize_window()
sleep(2)
dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()
sleep(3)
dx.find_element_by_link_text("退出").click()
def tc(self):
dx = webdriver.Chrome()
dx.get("http://cms.duoceshi.cn/manage/login.do")
dx.find_element_by_name("userAccount").send_keys("admin")
dx.find_element_by_name("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_xpath("html/body/div/div/form/div[3]/label/input").click()
sleep(2)
dx.find_element_by_xpath("html/body/div/div/form/div[4]/input[1]").click()
dx.maximize_window()
dx.find_element_by_link_text("退出").click()
if __name__ == '__main__':
d=cms()
# d.dl()
# d.tc()
# d.xtgl()
写在一个类的用例,代码有冗余部分,我们需要优化
from selenium import webdriver
from time import sleep
class cms(object):
def __init__(self):
self.dx = webdriver.Chrome()
self.dx.get("http://cms.duoceshi.cn/manage/login.do")
self.dx.maximize_window()
self.dx.implicitly_wait(3)
def dl(self):
self.dx.find_element_by_name("userAccount").send_keys("admin")
self.dx.find_element_by_name("loginPwd").send_keys("123456")
self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
def xtgl(self):
self.dl( ) #先调用登录用例
# sleep(2)
# self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# def tc(self):
# self.dl()# 先调用登录用例
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# if __name__ == '__main__':
# d=cms()
# d.dl()<br> # d.tc()
# d.xtgl()在封装的过程将登录的账号设置成变量:from selenium import webdriver<br>from time import sleep
# class cms(object):
# def __init__(self):
# self.dx = webdriver.Chrome()
# self.dx.get("http://cms.duoceshi.cn/manage/login.do")
# self.dx.maximize_window()
# self.dx.implicitly_wait(3)
# def dl(self,name,pwd):
# self.dx.find_element_by_name("userAccount").send_keys(name)
# self.dx.find_element_by_name("loginPwd").send_keys(pwd)
# self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
# def xtgl(self,name,pwd):
# self.dl(name,pwd) #先调用登录用例
# sleep(2)
# self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# def tc(self,name,pwd):
# self.dl(name,pwd)# 先调用登录用例
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# if __name__ == '__main__':
# d=cms() #创建cms类的对象d
# d.dl("admin","123456") #通过对象调用登录
# d.tc("admin","123456") #通过对象调用退出
# d.xtgl("admin","123456")#通过对象调用系统管理在封装好的代码中进行断言:if断言、assert 断言from selenium import webdriver
# from time import sleep
# class cms(object):
# def __init__(self):
# self.dx = webdriver.Chrome()
# self.dx.get("http://cms.duoceshi.cn/manage/login.do")
# self.dx.maximize_window()
# self.dx.implicitly_wait(3)
# def dl(self,name,pwd):
# self.dx.find_element_by_name("userAccount").send_keys(name)
# self.dx.find_element_by_name("loginPwd").send_keys(pwd)
# self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()
# print(self.dx.title)
# t=self.dx.title
# assert t=="过期更新"
# if t=="过期更新":
# print("ok")
# else:
# print("no")
# def xtgl(self,name,pwd):
# self.dl(name,pwd) #先调用登录用例
# sleep(2)
# self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# def tc(self,name,pwd):
# self.dl(name,pwd)# 先调用登录用例
# sleep(3)
# self.dx.find_element_by_link_text("退出").click() #点击退出
# if __name__ == '__main__':
# d=cms() #创建cms类的对象d
# d.dl("admin","123456") #通过对象调用登录
# d.tc("admin","123456") #通过对象调用退出
# d.xtgl("admin","123456")#通过对象调用系统管理
# 案例:from selenium import webdriver
# import time<br>class cms(object):
# dx = webdriver.Chrome()
# def __init__(self):
# pass<br> def dl(self):
# self.dx.get('http://cms.duoceshi.cn/manage/login.do')
# time.sleep(1)
# self.dx.maximize_window()
# 用户名、密码、勾选、登陆
# time.sleep(1)
# self.dx.find_element_by_id('userAccount').send_keys('admin')
# time.sleep(1)
# self.dx.find_element_by_id('loginPwd').send_keys('123456')
# time.sleep(1)
# self.dx.find_element_by_id('online').click()
# time.sleep(1)
# self.dx.find_element_by_id('loginBtn').click()
# time.sleep(1)
# def yfzx(self):
# self.dl()
# self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt').click()
# time.sleep(1)
# self.dx.find_element_by_link_text('用户管理').click()
# time.sleep(1)
# def yftj(self):
# self.yfzx()
# ifk = self.dx.find_element_by_xpath('//*[@id="iframe_box"]/div[2]/iframe')
# self.dx.switch_to.frame(ifk) # 进入框
# self.dx.find_element_by_xpath('/html/body/div/div[2]/span[1]/a[2]').click()
# 用户姓名、性别、手机、邮箱、登陆账号、登陆密码、确认密码、确认
# ifk2 = self.dx.find_element_by_xpath('//*[@id="xubox_iframe1"]')
# self.dx.switch_to.frame(ifk2) # 进入框
# self.dx.find_element_by_xpath('//*[@id="userName"]').send_keys('zn')
# self.dx.find_element_by_xpath('//*[@id="sysUserForm"]/table/tbody/tr[2]/td/label[2]').click()
# self.dx.find_element_by_xpath('//*[@id="user-tel"]').send_keys('18200001000')
# self.dx.find_element_by_xpath('//*[@id="user-email"]').send_keys('1820000100@qq.com')
# self.dx.find_element_by_xpath('//*[@id="userAccount"]').send_keys('zn')
# self.dx.find_element_by_xpath('//*[@id="loginPwd"]').send_keys('123456')
# self.dx.find_element_by_xpath('//*[@id="confirmPwd"]').send_keys('123456')
# time.sleep(5)
# self.dx.find_element_by_xpath('//*[@id="submitBtn"]').click()
# self.dx.switch_to.default_content() # 退出框
# 根据用户名称-搜索-删除-确认删除
# self.dx.switch_to.frame(ifk) # 进入框
# time.sleep(2)
# self.dx.find_element_by_xpath('//*[@id="searchValue"]').send_keys('zn')
# time.sleep(1)
# self.dx.find_element_by_xpath('//*[@id="searchBtn"]').click()
# if __name__ == '__main__':
# dx=cms()
# dx.dl()
# dx.yfzx()
# dx.yftj()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现