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

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

前面一些记录了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. iOS Android中 h5键盘遮挡输入框的问题和解决方案

    问题发现:在 Android 部分机型 和 iOS部分系统下 键盘会出现遮挡输入框的情况(壳内).问题解决: Android 经过测试,Android 的6.0版本以上均会出现改问题,归根到底是之前的 ...

  2. 【VisualStdio】在VS2015中显示上下文菜单中“创建单元测试”菜单

    ---恢复内容开始--- VS2012以后创建单元测试的选项被默认隐藏了,创建单元测试变得无比低效率.看msdn的说法好像是想推荐使用Intell Test来替代单元测试的用途,但是还没摸清楚也不敢瞎 ...

  3. Digital Root 的推导

    背景 在LeetCode上遇到这道题:Add Digits 大意是给一个数,把它各位数字相加得到一个数,如果这个数小于10就返回,不然继续 addDigits(这个相加得到的数). 题目很简单,但是如 ...

  4. js中浅谈this对象(未补充完整)

    什么是this? 1.javascript语言中,一切皆为对象(除了 undefined 和 null 之外),运行环境也是对象,所以函数都是在某个对象之中运行,this就是这个对象(环境). 2.t ...

  5. jmeter 线程组之间传递动态变化的变量值

    http://www.51testing.com/html/01/n-3725501.html https://www.jianshu.com/p/73832bae65af https://blog. ...

  6. ubuntu下MySQL的安装及远程连接配置(转)

    1.命令窗口中输入sudo apt-get install mysql-server mysql-client 即可(配置文件位置:/etc/mysql/my.cnf 启动文件位置:/etc/init ...

  7. Goals ? Ideals ?

    Why is it important to set goals ? Because goal can help you do , be , and experience anything you w ...

  8. P3391 文艺平衡树(Splay)

    题目背景 这是一道经典的Splay模板题--文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...

  9. 如何减少代码中的if-else嵌套

    实际项目中,往往有大量的if-else语句进行各种逻辑校验,参数校验等等,大量的if-else,语句使代码变得臃肿且不好维护,本篇文章结合我自己的经验,就减少if-else语句给出以下几种方案,分别适 ...

  10. spring 事物(三)—— 声明式事务管理详解

    spring的事务处理分为两种: 1.编程式事务:在程序中控制事务开始,执行和提交:详情请点此跳转: 2.声明式事务:在Spring配置文件中对事务进行配置,无须在程序中写代码:(建议使用) 我对&q ...