函数最重要的目的是方便我们重复使用相同的一段程序。

将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。

前面一些记录了selenium的各种API,包括它的安装,以及unittest框架中的testcase,testsuite等的操作,还有元素定位的知识点。

(学会元素定位,特别是xpath与css的定位方法,然后准备一份API文档,方便自己查阅。)

掌握了这些知识后,基本上的线性自动化测试模型可以操作了。对于一个系统也可以做冒烟测试了。

剩下的就是模块化与数据化了。(模块化与数据参数化有利于开发与维护自动化脚本,线性重复,维护成本高。)

所谓模块化就是把相同步骤的封装成一个模块。例如,登录就可以封装成一个模块了。因为它只是用户名与密码不一样,但是操作步骤是一样的。

而且如果以后登录模块发生变化了,我们只要更改登录那个模块就可以了,其它调用登录模块的地方都不需要去修改了。

在学习这一块的时候,就会涉及到开发语言的函数这一块知识了。

总之,树立一个思想,模块化就是把重复使用的操作步骤的定义成一个函数,然后后续其它部分需要使用的话,就调用这个函数名。

具体涉及的一些函数的语法,规范,参数等知识,如何调用等,自己去深入学习。

我自己对编程语言的掌握也不够扎实,正在努力中。

望诸君共勉。

写一个例子吧:

定义一个LOGIN1函数:

 from selenium import webdriver

def login1(driver,username,password):
    driver.find_element_by_css_selector("input.userInput").send_keys(username)
driver.find_element_by_css_selector("ul.submitContent.mglr30.regMain>li:nth-child(2)>input").send_keys(password)
driver.find_element_by_css_selector("a.mainColorBtn.submitBtnBig.ClickShade").click()
link=driver.find_element_by_css_selector("a._personalInfo>i").is_displayed()
print (link)
print (u"登陆成功") 调用这个LOGIN1函数:
 from selenium import webdriver
# from login3 import login1 #此处说明一下,PACKAGE的名称是LOGIN3
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.implicitly_wait(10)
# driver.get("http://**************")
#
# username="ccc44400" ####此处我们可以设置不同的用户名与密码,来分别测试登录的功能。
# password="ccc444"
#
# login1(driver,username,password) ####此处直接调用LOGIN1函数,
# driver.quit()

python自动化之函数封装的更多相关文章

  1. Python自动化开发 - 函数

    本节内容 函数背景介绍 函数是什么 参数与局部变量 返回值 递归函数 匿名函数 函数式编程介绍 高阶函数 一.函数背景介绍 老板让你写一个监控程序,监控服务器的系统状况,当cpu/memory/dis ...

  2. python自动化测试之函数(匿名函数lambda和三目运算等(高级用法))

    ''' 匿名函数: lambda ''' def Add(a,b): print(a+b) Add(2,3) per = lambda a,b:a+b print(per(2,3)) ''' 三目运算 ...

  3. Python:常用函数封装

    def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\u4e00' ...

  4. Appium python自动化测试系列之滑动函数封装实战(八)

    8.1 什么是函数的封装 教科书上函数的封装太官方,我们这里暂且将函数的封装就是为了偷懒把一些有共性的功能或者一些经常用的功能以及模块放在一起,方便我们以后再其他地方调用.这个只是个人的理解所以大家懂 ...

  5. python requests函数封装方法

    python  requests函数封装方法 上代码 import requests import json """ 封装request请求, 1.post:my_pos ...

  6. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

  7. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  8. python自动化开发学习 进程, 线程, 协程

    python自动化开发学习 进程, 线程, 协程   前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...

  9. 测开之Python自动化全栈工程师+性能专项(送思维导图)

    测开之Python自动化全栈工程师+性能专项 功能测试基础 接口测试基础接口的通信原理与本质cookie.session.token详解接口测试的意义与测试方法接口测试用例的设计 app测试 app流 ...

随机推荐

  1. 五. jenkins部署springboot项目(2)--windows环境--服务

    前提:jenkins和springboot运行在同一台机器 springboot 通过winsw部署为服务 winsw 下载地址:https://github.com/kohsuke/winsw/re ...

  2. charles抓包看性能数据

    1.优化某个接口或加载速度(H5加载速度慢) 抓包看Overview ①看Duration,就是接口的加载时间 ②看Latency,就是延时一端传播到另一端所花费的时间:一般和网络有关:可以综合Dur ...

  3. HDU3951_Coin Game

    Coin Game Problem Description 一堆n个硬币围成一圈,两个人轮流拿走连续k个硬币,拿走最后一堆的人获胜 问你第一个人获胜还是第二个 思路: 这是NIM游戏改编版本 但是道理 ...

  4. Linux下安装git本地库与服务器端远程库

    1.    git是一个分布式版本管理系统,关于该工具的详细介绍,我认为廖雪峰老师介绍的非常全面:https://www.liaoxuefeng.com/wiki/896043488029600. 不 ...

  5. 2018-2-13-win10-UWP-九幽登录

    title author date CreateTime categories win10 UWP 九幽登录 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...

  6. VBA-数据库操作

    基本概念 1 怎么样才能操作数据库?使用ADO建立和数据库的连接,然后用ADO对象和sql语言对数据库进行操作. 2 SQL是什么?SQL(Structured Query Language)是一种查 ...

  7. 中州韵输入法(rime)导入搜狗词库

    rime是一个非常优秀的输入法,linux平台下的反应速度远超搜狗,也没有隐私风险.2012年开始接触它,到后来抛弃了它,因为rime自带的词库真的太弱了,也懒得折腾.最近发现一个词库转换软件叫ime ...

  8. 转:谈谈Linux下动态库查找路径的问题

    http://blog.chinaunix.net/uid-23069658-id-4028681.html 学习到了一个阶段之后,就需要不断的总结.沉淀.清零,然后才能继续“上路”.回想起自己当年刚 ...

  9. expdp和impdp

    前言 一句话  expdp和impdp,只能在本地服务器运行 使用前 1.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建.  create directory dpd ...

  10. js手机端图片弹出方法

    1 $("img").click(function(){ //获取窗口可视大小 var width=$(window).width(); var height=$(window). ...