肖sir__ python自动化之selenium 封装(9.2)

python自动化之selenium 

一、自动化用例

案例:

用例1cms环境 登录

1
2
3
4
5
6
7
8
9
from selenium import webdriver
from  selenium.webdriver.support.select import Select
from  time import  *
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('//*[@id="loginBtn"]').click()

 用例2: cms环境中登录--退出

1
2
3
4
5
6
7
8
9
from selenium import webdriver
from  selenium.webdriver.support.select import Select
from  time import  *
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('//*[@id="loginBtn"]').click()<br>

  用例3:cms 登录--系统管理--退出  流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
from  time import  *
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()

  ==========================================================

二、将三条用例写入到一个类中管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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()<br><br>写在一个类的用例,代码有冗余部分,我们需要优化from selenium import webdriver<br>from  time  import  sleep<br>class   cms(object):<br>    def __init__(self):<br>        self.dx = webdriver.Chrome()<br>        self.dx.get("http://cms.duoceshi.cn/manage/login.do")<br>        self.dx.maximize_window()<br>        self.dx.implicitly_wait(3)<br>    def dl(self):<br>        self.dx.find_element_by_name("userAccount").send_keys("admin")<br>        self.dx.find_element_by_name("loginPwd").send_keys("123456")<br>        self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()<br>    def  xtgl(self):<br>        self.dl( ) #先调用登录用例<br>        sleep(2)<br>        self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br><br>    def  tc(self):<br>        self.dl()# 先调用登录用例<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br>if __name__ == '__main__':<br>    d=cms()<br>    # d.dl()<br>    # d.tc()<br>    d.xtgl()在封装的过程将登录的账号设置成变量:from selenium import webdriver<br>from  time  import  sleep<br>class   cms(object):<br>    def __init__(self):<br>        self.dx = webdriver.Chrome()<br>        self.dx.get("http://cms.duoceshi.cn/manage/login.do")<br>        self.dx.maximize_window()<br>        self.dx.implicitly_wait(3)<br>    def dl(self,name,pwd):<br>        self.dx.find_element_by_name("userAccount").send_keys(name)<br>        self.dx.find_element_by_name("loginPwd").send_keys(pwd)<br>        self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()<br>    def  xtgl(self,name,pwd):<br>        self.dl(name,pwd) #先调用登录用例<br>        sleep(2)<br>        self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br><br>    def  tc(self,name,pwd):<br>        self.dl(name,pwd)# 先调用登录用例<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br>if __name__ == '__main__':<br>    d=cms() #创建cms类的对象d<br>    # d.dl("admin","123456") #通过对象调用登录<br>    # d.tc("admin","123456") #通过对象调用退出<br>    d.xtgl("admin","123456")#通过对象调用系统管理在封装好的代码中进行断言:if断言、assert 断言from selenium import webdriver<br>from  time  import  sleep<br>class   cms(object):<br>    def __init__(self):<br>        self.dx = webdriver.Chrome()<br>        self.dx.get("http://cms.duoceshi.cn/manage/login.do")<br>        self.dx.maximize_window()<br>        self.dx.implicitly_wait(3)<br>    def dl(self,name,pwd):<br>        self.dx.find_element_by_name("userAccount").send_keys(name)<br>        self.dx.find_element_by_name("loginPwd").send_keys(pwd)<br>        self.dx.find_element_by_xpath('//*[@id="loginBtn"]').click()<br>        print(self.dx.title)<br>        t=self.dx.title<br>        assert t=="过期更新"<br>        # if t=="过期更新":<br>        #     print("ok")<br>        # else:<br>        #     print("no")<br>    def  xtgl(self,name,pwd):<br>        self.dl(name,pwd) #先调用登录用例<br>        sleep(2)<br>        self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt').click()# 点击系统管理<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br><br>    def  tc(self,name,pwd):<br>        self.dl(name,pwd)# 先调用登录用例<br>        sleep(3)<br>        self.dx.find_element_by_link_text("退出").click() #点击退出<br>if __name__ == '__main__':<br>    d=cms() #创建cms类的对象d<br>    d.dl("admin","123456") #通过对象调用登录<br>    # d.tc("admin","123456") #通过对象调用退出<br>    # d.xtgl("admin","123456")#通过对象调用系统管理<br><br>案例:from selenium import webdriver<br>import time<br>class  cms(object):<br>    dx = webdriver.Chrome()<br>    def  __init__(self):<br>        pass<br>    def  dl(self):<br>        self.dx.get('http://cms.duoceshi.cn/manage/login.do')<br>        time.sleep(1)<br>        self.dx.maximize_window()<br>        # 用户名、密码、勾选、登陆<br>        time.sleep(1)<br>        self.dx.find_element_by_id('userAccount').send_keys('admin')<br>        time.sleep(1)<br>        self.dx.find_element_by_id('loginPwd').send_keys('123456')<br>        time.sleep(1)<br>        self.dx.find_element_by_id('online').click()<br>        time.sleep(1)<br>        self.dx.find_element_by_id('loginBtn').click()<br>        time.sleep(1)<br>    def  yfzx(self):<br>        self.dl()<br>        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt').click()<br>        time.sleep(1)<br>        self.dx.find_element_by_link_text('用户管理').click()<br>        time.sleep(1)<br>    def  yftj(self):<br>        self.yfzx()<br>        ifk = self.dx.find_element_by_xpath('//*[@id="iframe_box"]/div[2]/iframe')<br>        self.dx.switch_to.frame(ifk)  # 进入框<br>        self.dx.find_element_by_xpath('/html/body/div/div[2]/span[1]/a[2]').click()<br>        # 用户姓名、性别、手机、邮箱、登陆账号、登陆密码、确认密码、确认<br>        ifk2 = self.dx.find_element_by_xpath('//*[@id="xubox_iframe1"]')<br>        self.dx.switch_to.frame(ifk2)  # 进入框<br>        self.dx.find_element_by_xpath('//*[@id="userName"]').send_keys('zn')<br>        self.dx.find_element_by_xpath('//*[@id="sysUserForm"]/table/tbody/tr[2]/td/label[2]').click()<br>        self.dx.find_element_by_xpath('//*[@id="user-tel"]').send_keys('18200001000')<br>        self.dx.find_element_by_xpath('//*[@id="user-email"]').send_keys('1820000100@qq.com')<br>        self.dx.find_element_by_xpath('//*[@id="userAccount"]').send_keys('zn')<br>        self.dx.find_element_by_xpath('//*[@id="loginPwd"]').send_keys('123456')<br>        self.dx.find_element_by_xpath('//*[@id="confirmPwd"]').send_keys('123456')<br>        time.sleep(5)<br>        self.dx.find_element_by_xpath('//*[@id="submitBtn"]').click()<br>        self.dx.switch_to.default_content()  # 退出框<br>        # 根据用户名称-搜索-删除-确认删除<br>        self.dx.switch_to.frame(ifk)  # 进入框<br>        time.sleep(2)<br>        self.dx.find_element_by_xpath('//*[@id="searchValue"]').send_keys('zn')<br>        time.sleep(1)<br>        self.dx.find_element_by_xpath('//*[@id="searchBtn"]').click()<br>if __name__ == '__main__':<br>    dx=cms()<br>    # dx.dl()<br>    # dx.yfzx()<br>    dx.yftj()<br><br>
posted @   xiaolehua  阅读(338)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示