先介绍一下Python中的一些基本概念:
selenium包的路径是在\Python 3.6.1\Lib\site-packages\selenium,一般第三方package都是在\Lib\site-packages\下 第一种导入模块方法:import modelName
你可以看到这个文件里包含了各种浏览器的webdriver,在需要具体浏览器时,我们就可以自动定义webdriver,定义变量时需要用selenium.webdriver,因为我们导包时就是导入selenium.webdriver,你会发现这样有点麻烦。 这时我们可以使用第二种导入模块的方法:from package import modelName
基本概念
函数function 将一组代码组织到一起,实现某种功能 模块module 为实现某种逻辑将相关连的函数写在同一个文件里,使逻辑更清楚,这就是一个模块 在python中文件以.py 结尾,那这个.py文件就可以称之为模块,说白了,就是Python文件 库文件library library,中文翻译为:库,也常称为:库文件 之所以此处不说是Python中的library,那是因为,本身library这个词,一般都是针对其他的编译型语言,比如C,C#等语言来说的。常见的C/C#等语言中的library,一般指的就是: 静态的库文件:xxx.a 动态的库文件:xxx.dll Python中module和library之间的区别 对于library和module,说白了,都是提供了一定的功能供别人调用。 从这方面来说,也可以理解为:Python中library等价于module; 只不过,Python中,很少说library,正常的话,都是说module; 包Package 为了方便管理模块,python 中引入了包的概念 包是由关联的多个模块组成的目录,在每一个包下而都有一个__init__.py文件,这个文件必须存在 否则,Python就把这个目录当成普通目录,而不是一个包 init.py 可以是空文件,也可是有python代码,因为__init__.py本身就是一个模块import 导入
使用import 关键字,可以将一个包中已出现的一个或多个函数或模块,引入到另一个python代码中,从而实现代码的复用 注意 1、如果是本地导入文件,直接使用:import filename 2、如果导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,有了__init__.py文件,python解析器才会把这个目录当成是的包 使用module有什么好处呢? 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数的名字冲突。 导入内置模块一般是这样的:import os
如果不同的人编写的模块名相同怎么办?为了避免模块冲突,Python可以按Package来导入模块。 我们以我们经常用到的selenium包为例来讲一下import的三种方法: 我们先看一下selenium包的目录结构,如下图
import webdriver
driver = webdriver.Chrome() #定义一个driver变量
这个时候我们发现报错,是因为selenium包下面有多个packages,有多个webdriver.py文件,这时我们可以通过具体包去导入import selenium.webdriver
driver = selenium.webdriver.Chrome() #定义一个driver变量
去selenium包目录下你会发现我们找不到webdriver.py文件,其实我们是导入了selenium包下面的webdriver包中的__init__.py文件,如图所示:
from selenium import webdriver
driver = webdriver.Chrome() #定义一个driver变量
其实这种方法还可以导入模块里面具体的函数:from modelName import functionName 第三种导入模块方式:import modelName as xximport selenium.webdriver as sample
driver = sample.Chrome() #定义一个driver变量
这个其实相当于将selenium.webdriver重命名,为了定义时方便 总结: 1.如果导入内置模块,一般是import modelName 2.如果需要导入包里面的所有模块,直接可以import packageName 3.如果需要导入具体包里面的模块或者模块里面的具体函数,使用from xx import yy 4.如果需要对导入的模块进行简单重命名,可以使用import modelName as xx