自动化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=402881f95b4b1209015b4c0d15080157"]‘        return self.pyse.wait_and_save_exception(tmp,name)

#基础支撑class JczcPage(LoginPage):    def clickJczc(self):        tmp = ‘css=>a[lay-href="getMenuList.do?permission=402881f95b4b1209015b4c0d15080157"]‘        self.pyse.click(tmp)

#区划管理class QhglPage(JczcPage):    def Qhclick(self):        self.pyse.switch_to_frame_out()        tmp0=‘css=>[src="getMenuList.do?permission=402881f95b4b1209015b4c0d15080157"]‘        self.pyse.switch_to_frame(tmp0)        tmp=‘css=>#menu_list>ul>li[id="402881f95b4b1209015b4c11f9cd0178"]‘        # print(self.pyse.wait_and_save_exception(tmp,‘区划管理‘))        self.pyse.click(tmp)#增加按钮    def zengjia(self):        tmp0=‘css=>[id="menu_list_item_ifram"]‘        self.pyse.switch_to_frame(tmp0)        tmp2=‘xpath=>//div[@class="select_area clearfix"]/div[@class="select_area_left"]/div[@class="zTreeDemoBackground left"]/ul[@id="districtTree"]‘ \             ‘/li[@id="districtTree_1"]/a[@id="districtTree_1_a"]/span[@id="districtTree_1_span"]‘        self.pyse.click(tmp2)        tmp3=‘xpath=>//iframe[@id="distList"]‘        self.pyse.switch_to_frame(tmp3)        tmp4=‘xpath=>//form[@id="queryForm"]/div[@class="btn-group col-md-3 col-sm-4"]/a[@class="btn btn-primary"][2]‘        self.pyse.click(tmp4)

        # 区划管理页面class Qhinfo(QhglPage):  # 填bug信息页面的类    def qhsu(self):  # 所属模块,从父级指向下级a,父级定位唯一,在tmp12中会唯一获取到         self.pyse.switch_to_frame_out()         tmp0 = ‘css=>#_DialogFrame_0‘         self.pyse.switch_to_frame(tmp0)         tmp1= ‘css=>#name‘#区划名称         self.pyse.type(tmp1, ‘学校‘)         tmp2 = ‘css=>#code‘#区划代码         self.pyse.type(tmp2, ‘874596‘)         tmp3 = ‘css=>#levelDictOid‘#级别         self.pyse.select_by_value(tmp3, ‘402881fa56e8b41c0156e8ba5e33000a‘)  # 地级市、自治州、地区、盟         tmp4= ‘css=>#sort‘#排序号         self.pyse.type(tmp4, ‘45‘)         tmp5= ‘css=>#financeDivisionCode‘ # 财政区划内码         self.pyse.type(tmp5, ‘632105‘)         tmp6= ‘css=>div>a[class="layui-layer-btn2"]‘         self.pyse.click(tmp6)         self.pyse.switch_to_frame_out()         tmp7= ‘css=>#_ButtonOK_1‘         self.pyse.click(tmp7)

#跳到区划管理页面def checkQhinfo(self,name):        self.pyse.switch_to_frame_out()        tmp0 = ‘css=>[src="getMenuList.do?permission=402881f95b4b1209015b4c0d15080157"]‘        self.pyse.switch_to_frame(tmp0)        tmp = ‘css=>#menu_list>ul>li[id="402881f95b4b1209015b4c11f9cd0178"]‘        return self.pyse.wait_and_save_exception(tmp,name)

class Page(Qhinfo):       pass

if __name__ == ‘__main__‘:        page = Page()        page.open()        page.sendUsername()        page.sendPasswd()        page.clickLogin()        print(page.checkLogin(‘登录失败了‘))        page.clickJczc()        page.Qhclick()        page.zengjia()        page.qhsu()        print(page.checkQhinfo(‘保存失败了‘))

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

时间: 2024-10-14 03:29:54

自动化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 属性介绍 获

linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版本非常多,相关的编译器,解释器也有很多,很多还有最小系统,嵌入式系统等等.同一功能的软件如果只有编译好的软件包,在其它linux的平台上,可能并不能正常安装运行,在此情况下,源码包编译安装出现了.所以本文的重点是以nginx为例,给出源码包编译安装的详细过程,同时带你手工编写自动化运行脚本. 准备工

精益开发实战——用看板管理大型项目 读书笔记

1.项目背景 2.组织团队 3.每天出席鸡尾酒会 上面的会议通常持续10-15分钟,由团队主管(ScrumMaster)主持,一般问就下面3个问题展开. 我昨天做了什么工作? 今天打算做什么? 遇到了什么麻烦? 所有测试人员都聚拢在测试状态板前,讨论如何最好地利用当天的时间.隶属于具体功能开发团队的测试人员刚刚跟各自所属的团队开完立会,所以他们可以分享各个团队的最新进展. 与此同时,需求分析团队则在开他们自己的同步立会.刚刚跟功能开发团队开完立会的分析人员也来参加会议,他们有最新的信息可以向整个