自动化selenium脚本开发(示例2:目录清单审核、发布、认领、认领审核)

from  lib.pyse  import  Pyse‘‘‘pageobject实际上就是    将一个页面  抽象成一个类  页面上可操作的元素 抽象成方法

    ‘‘‘

#登陆页面class BasePage(object):    def __init__(self):        self.pyse = Pyse(‘chrome‘)

    def open(self):        self.pyse.open(‘http://43.254.154.254:12333/sxgl‘)   #项目地址

    def quit(self):        self.pyse.quit()

class LoginPage(BasePage):    def sendUsername(self):        tmp = ‘css=>#loginCode‘   #用户id        self.pyse.type(tmp, ‘admin‘)

    def sendPasswd(self):        css = ‘css=>#loginPassword‘ #密码id        self.pyse.type(css, ‘123‘)

    def clickLogin(self):        css = ‘css=>#submitButton‘  #提交按钮        self.pyse.click(css)

    def checkLogin(self,name):      #登录页面校验的方法:看登录成功之后的页面的某个元素是否能定位到,比如只有登录成功之后才有退出按钮        tmp0=‘css=>[src="systemIndex.do"]‘        self.pyse.switch_to_frame(tmp0)        tmp=‘css=>a[lay-href="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        return self.pyse.wait_and_save_exception(tmp,name)

#目录清单模块class MlqdPage(LoginPage):    def clickMlqd(self):        tmp = ‘css=>a[lay-href="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        self.pyse.click(tmp)#1.目录清单审核class QdshPage(MlqdPage):    def Qdshclick(self):        self.pyse.switch_to_frame_out()        tmp0=‘css=>[src="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        self.pyse.switch_to_frame(tmp0)        tmp=‘css=>#menu_list>ul>li[id="402881b25e4f9859015e4fae4583000d"]‘        # print(self.pyse.wait_and_save_exception(tmp,‘目录清单审核‘))        self.pyse.click(tmp)#编制审核按钮点击    def bzsh(self):        tmp1=‘css=>[id="menu_list_item_ifram"]‘        self.pyse.switch_to_frame(tmp1)        tmp2=‘xpath=>//div[@class="select_result_list"]/table[@class="table table-bordered"]/tbody/tr[2]/td[@class="visible"]/div[@class="use use_two green_use1"]‘ \              ‘/i[@class="icontype type_examine"]‘        self.pyse.click(tmp2)# 目录清单审核操作页面class Qdinfo(QdshPage):  # 填bug信息页面的类    def qdsh(self):  # 所属模块,从父级指向下级a,父级定位唯一,在tmp12中会唯一获取到         self.pyse.switch_to_frame_out()         tmp0 = ‘css=>#_DialogFrame_0‘         self.pyse.switch_to_frame(tmp0)         tmp1=‘xpath=>//html/body[@class="body-backg"]/div[@class="select_result_list"]/div[@class="pull-wrap pb0"]/form[@id="form1"]/table[2]‘ \              ‘/tbody[1]/tr[2]/td[2]//textarea[@id="auditOption"]‘         self.pyse.type(tmp1, ‘1‘)#审核         tmp2= ‘xpath=>//div[@id="manage"]/div[@class="layui-layer-btn"]/a[@class="layui-layer-btn2"]‘         self.pyse.click(tmp2)#审核成功         self.pyse.switch_to_frame_out()         tmp3 = ‘css=>#_ButtonOK_1‘         self.pyse.click(tmp3)#退到审核列表页面

#2.目录清单发布    def Qdfbclick(self):        self.pyse.switch_to_frame_out()        tmp0=‘css=>[src="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        self.pyse.switch_to_frame(tmp0)        tmp1=‘css=>#menu_list>ul>li[id="402881b25e4f9859015e4fb387500019"]‘        # print(self.pyse.wait_and_save_exception(tmp,‘目录清单发布‘))        self.pyse.click(tmp1)#发布按钮点击    def fbsh(self):        tmp1=‘css=>[id="menu_list_item_ifram"]‘        self.pyse.switch_to_frame(tmp1)        temp2=‘xpath=>//div[@class="select_result_list"]/table[@id="tableList"]/tbody/tr[2]/td[9]/div[1]//i[2]‘        self.pyse.click(temp2)#目录发布操作页面 # 填bug信息页面的类    def qdfbsh(self):  # 所属模块,从父级指向下级a,父级定位唯一,在tmp12中会唯一获取到         self.pyse.switch_to_frame_out()         tmp0 = ‘css=>#_DialogFrame_0‘         self.pyse.switch_to_frame(tmp0)         tmp1=‘xpath=>//html/body[@class="body-backg"]/div[@class="select_result_list"]/div[@class="pull-wrap pb0"]/form[@id="form1"]/table[2]‘ \              ‘/tbody[1]/tr[2]/td[2]//textarea[@id="auditOption"]‘         self.pyse.type(tmp1, ‘1‘)#发布         tmp2= ‘xpath=>//div[@id="manage"]/div[@class="layui-layer-btn"]/a[@class="layui-layer-btn2"]‘         self.pyse.click(tmp2)         self.pyse.switch_to_frame_out()         tmp3 = ‘css=>#_ButtonOK_1‘         self.pyse.click(tmp3)#确定,回到发布列表页面

#3.目录清单认领    def Qdrlclick(self):        self.pyse.switch_to_frame_out()        tmp0=‘css=>[src="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        self.pyse.switch_to_frame(tmp0)        tmp1=‘css=>#menu_list>ul>li[id="2c287bb6669f70d601669fc7f3ca0019"]‘        # print(self.pyse.wait_and_save_exception(tmp,‘目录清单认领‘))        self.pyse.click(tmp1)#认领按钮点击    def rlsh(self):        tmp1=‘css=>[id="menu_list_item_ifram"]‘        self.pyse.switch_to_frame(tmp1)        temp2=‘xpath=>//div[@class="select_result_list"]/table[@id="tableList"]/tbody/tr[2]/td[7]/div[1]/i[1]‘        self.pyse.click(temp2)#目录认领操作页面  # 填bug信息页面的类    def qdrlsh(self):  # 所属模块,从父级指向下级a,父级定位唯一,在tmp12中会唯一获取到         self.pyse.switch_to_frame_out()         tmp1 = ‘css=>#_ButtonOK_0‘         self.pyse.click(tmp1)#认领         tmp2 = ‘css=>#_ButtonOK_0‘         self.pyse.click(tmp2)#回到目录认领列表页面

#4.目录清单认领审核    def Qdrlshclick(self):        self.pyse.switch_to_frame_out()        tmp0=‘css=>[src="getMenuList.do?permission=402881b25e4f9859015e4fabd3ef000c"]‘        self.pyse.switch_to_frame(tmp0)        tmp1=‘css=>#menu_list>ul>li[id="2c287bb6669fe72601669feb31700006"]‘        # print(self.pyse.wait_and_save_exception(tmp,‘目录清单认领‘))        self.pyse.click(tmp1)#认领审核按钮点击    def rlshan(self):        tmp1=‘css=>[id="menu_list_item_ifram"]‘        self.pyse.switch_to_frame(tmp1)        temp2=‘xpath=>//div[@class="select_result_list"]/table[@id="tableList"]/tbody/tr[2]/td[9]/div[1]/i[1]‘        self.pyse.click(temp2)

 # 填bug信息页面的类    def qdrlshym(self):  # 所属模块,从父级指向下级a,父级定位唯一,在tmp12中会唯一获取到        self.pyse.switch_to_frame_out()        tmp0 = ‘css=>#_DialogFrame_0‘        self.pyse.switch_to_frame(tmp0)        tmp1 = ‘xpath=>//html/body/div[@class="select_result_list"]/div[@class="pull-wrap"]/form[@id="form1"]/table[2]/tbody[1]/tr[3]/td[2]/textarea[@id="remark"]‘        self.pyse.type(tmp1, ‘1‘)#认领审核        tmp2 = ‘xpath=>//div[@id="manage"]/div[@class="layui-layer-btn"]/a[@class="layui-layer-btn2"]‘        self.pyse.click(tmp2)        self.pyse.switch_to_frame_out()        tmp3 = ‘css=>#_ButtonOK_1‘        self.pyse.click(tmp3)#回到认领审核列表页面

class Page(Qdinfo):       pass

if __name__ == ‘__main__‘:        page = Page()        page.open()        page.sendUsername()        page.sendPasswd()        page.clickLogin()        print(page.checkLogin(‘登录失败了‘))        page.clickMlqd()        page.Qdshclick()        page.bzsh()        page.qdsh()#目录清单发布        page.Qdfbclick()        page.fbsh()        page.qdfbsh()#目录认领        page.Qdrlclick()        page.rlsh()        page.qdrlsh()#目录认领审核        page.Qdrlshclick()        page.rlshan()        page.qdrlshym()

原文地址:https://www.cnblogs.com/zhaoxueying/p/11412140.html

时间: 2024-10-03 23:17:58

自动化selenium脚本开发(示例2:目录清单审核、发布、认领、认领审核)的相关文章

自动化selenium脚本开发(示例1:用户管理)

import time from lib.pyse import Pyse '''# PageObject思想:将一个页面抽象成一个类,将这个页面上能够操作的元素,抽象成一个个的方法# 好处:已封装好的模块,要修改的时候,就可以定位到某一块代码的地方'''#方法和思路,以及需要注意的点:#1.当存在很多个类的时候,按照顺序从上到下依次继承,b继承a,c继承b,d集成c...#2.一个页面是一个类,每个页面里面的任意一个操作都是一个方法#3.每个页面结束之后,都要进行一个校验,看页面跳转之后页面的

自动化selenium脚本开发(示例2:区划管理)

from lib.pyse import Pyse'''pageobject实际上就是 将一个页面 抽象成一个类 页面上可操作的元素 抽象成方法 ''' #登陆页面class BasePage(object): def __init__(self): self.pyse = Pyse('chrome') def open(self): self.pyse.open('http://43.254.154.254:12333/sxgl') #项目地址 def quit(self): self.pys

mysql自动化安装脚本开发

最近正好有空闲时间进行mysql自动安装脚本开发,预计先用shell实现一个版本,后续继续用python改造开发,最终实现python版本的开发. 2019-3-18,完成shell脚本的mysql自动化安装脚本的开发与调试.信息如下:mysql版本为5.6.43,通过shell函数的方式实现数据安装的3个阶段,再加上一个全局阶段,共4个阶段 1.全局阶段通过if [ $(id -u) != "0" ]判断当前操作用户是否为root,如不等0,则提示用户使用root用户执行该脚本,实现

JMeter学习(二十九)自动化badboy脚本开发技术

一般人用badboy都是使用它的录制功能,其它badboy还是一款自动化的工具,它可以实现检查点.参数化.迭代.并发.报告.断点等功能.本文就这些功能简单介绍下. 环境准备: 下载地址:http://www.badboy.com.au/,下载后安装即可. 工具:BadboyInstaller-2.2.exe 一.检查点 1.打开badboy,默认是录制状态,在地址栏中输入:http://http://www.sogou.com/,点击,如下图: 2.在文本框中输入yangxia-test,点击搜

Selenium+C#自动化脚本开发学习

Selenium+C#自动化脚本开发知识学习 1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指定的URL地址 driver.Navigate().GoToUrl(@"http://12.99.102.196:9080/corporbank/logon_pro.html"); //关闭浏览器 Driver.quit(); 网银浏览器兼容性测试过程中,关闭浏览器后会有对话框,此问题解决

gulp自动化任务脚本在HybridApp开发中的使用

目前做前端开发的同学可能都熟悉grunt,fis之类的自动化构建工具,其实在HybridApp开发中我们也可以使用这些工具来简化我们的工作,gulp就是一个比grunt,fis都先进的构建工具,用好gulp可以简化我们的工作流程,提升产品质量.本文会详细的说明我们移动App项目gulp的使用经验,部分关于gulp的介绍来自国外网站. gulp是 Fractal公司发布的一个新的基于nodejs的构建系统,目标是取代Grunt,成为最流行的JavaScript任务运行器.目前ionic框架默认的构

【COCOS CREATOR 系列教程之二】脚本开发篇&事件监听、常用函数等示例整合

[Cocos Creator ](千人群):  432818031 上一篇,介绍了Himi在使用过cc所有组件后的一篇总结,没有具体介绍每个组件的原因在于官方文档很齐全,而且也有视频的介绍. 所以希望童鞋们可以把我这两篇博文当成对组件.脚本两部分开发的整理与总结. 后续的文章,Himi应该主要更新一些官方还未补充或者还没有的教程.避免无用功. 下面直接放出代码,因为不是很难理解.所以不再一一赘述,都是常用的函数.事件监听.动作回调.定时器等开发过程中必接触的. 大致内容如下: cc 属性介绍 获

Sqoop 脚本开发规范(实例手把手带你写sqoop export和sqoop import)

首先,先明确,为什么Sqoop需要规范的脚本开发呢? 答:是因为,Sqoop import HDFS/Hive/HBase这些都是手动.但是在实际生产里,有时候,需要用脚本来完成. 比如,通过shell脚本来操作对Sqoop.Hive.HBase.MapReduce.HDFS.Spark.Storm等各种. Sqoop 脚本开发规范 目录规范 1.目录结构体系 /home/hadoop(开发用户)/app/djt(数据来源.业务)/sh/sqoop 示例:/home/hadoop/app/djt

【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)

转载自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括,如果你的项目已经在google play 或Apple Store 等平台上架了,那么当你项目需要做一些活动或者修改前端的一些代码等那么你需要重新提交一个新版本给平台,这时候你的上架时候是个不确定的时候,具体什么时候能上架,主要跟平台有关,你再着急,也没有用的. 那么如果你的项目是使用脚本语言进行