51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1266|回复: 0
打印 上一主题 下一主题

【转】Selenium2 Python 自动化测试实战学习笔记 (叄)

[复制链接]
  • TA的每日心情
    奋斗
    2015-8-28 12:55
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]测试营长

    跳转到指定楼层
    1#
    发表于 2016-4-26 10:33:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    3.5  模组

    3.5.1 引用模块

    在Python语言中通过from..import..的方式引用模块,下面引用time模块。

    XX.PY

    Import time

    Print time.ctime()


    如果只用到time模块下面的ctime()方法,可以这样使用:

    Xx.py

    From time import ctime

    Print ctime()


    一次性把time模块下面的所有方法都引进来:

    Xx.py

    #coding=utf-8

    From time import *

    Print ctime()

    Print “休息一两秒”

    Sleep(2)

    Python 所安装的模块存放在C:\Python27\Lib\site-packages\目录下面

    3.5.2 模块调用

    我们可以自己创建一个模块,然后通过另一个程序调用。

    创建一个目录(project),在目录下面创建一个文件(pub.py),在文件中创建一个函数。

    Project\pub.py

    Def add(a,b):

                Print a+b

    在相同的目录下面创建一个文件(count.py)

    Project\count.py

    Import pub

    Printpub.add(3,5)

    这样就实现了跨文件的函数调用。



    **知识延伸:

    在project目录下面多了一个pub.pyc文件,pyc文件是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行。



    3.5.3 跨目录模块调用

    调用文件和被调用的文件不在同一目录下面,调用目录如下:

    ----project/model/pub.py

    ----project/count.py

    Ps:删除刚才调用生成的pub.pyc文件。再来执行count.py,python会给出提示信息,找不到pub模块。那么python是如何找到模块的呢?

    首先要知道,python在执行import语句时,到底进行了什么操作,按python的文档,它执行如下操作:

    第一步,创建一个新的,空的module对象(它可能包含多个module)

    第二步,把这个module对象插入sys.module中

    第三步,装载module的代码(如果需要,首先必须编译)

    第四步,执行新的module中对应的代码

    在执行第三步时,首先要找到,module程序所在的位置,搜索顺序是:

    当前路径(以及从当前目录指定的sys.path),然后是pythonPATH,然后是python的安装设置相关的默认路径。正因为这样的顺序,如果当前路径或pythoPATH中存在与标准module同样module,则会覆盖标准module。也就是说,如果当前目录下存在XML.py,那么执行import XML时,导入的是当前目录下的module,而不是系统标准的XML。

    我们可以先构建一个package,以普通的方式导入,就可以直接访问此package中各个module了。在python中的package必须包含一个__init__.PY的文件.


    现在我们就可以将..project/model/目录添加到系统环境变量下的path下面,但是这样不够灵活,我们可以调用python的sys模块来实现。

    Project\count.py

    Import sys

    Sys.path.append(‘\model’)

    From model import pub

    Print pub.add(3,5)

    调用sys模块,把model目录通过append()方法追加到系统环境变量path下面。Append()是一个非常有用的方法,它通常用于向一个数据或集合尾部添加新数据。

    PS:”\model”是一个相对路径,如果pub.py在别的目录下面,就需要用绝对路径了,如:append(“D:\\project\\model”)

    现在运行程序依然会告诉我们找不到model,我们还需要在model目录下面创建一个__init__.PY的文件,内容可以为空。这个文件告诉python model是一个可以被调用的模块。现在就可以正常运行了。

    那么我们可以在__init__.PY的文件目录下面放点什么呢?例如在model目录下面有两三个文件(a.py、b.py、c.py),那么打开__init__.PY的文件:

    Import a,b

    Project\count.py

    Import sys

    Sys.path.append(‘model’)

    From model import *

    Print pub.add(2,3)

    现在我们用星号(*)表示导入model 下面所有文件,这个所有具体包含什么由__init__.py 决定,因为只import 了a 和b 了.


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏4
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 19:44 , Processed in 0.066858 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表