1、安装python,配置环境变量。windows下是安装路径直接配到环境变量里面就可以
mac添加环境变量
在~/.bash_profile这个文件中,添加一行
alias python="/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/bin/python3.7"
问题1:为什么配置完环境变量之后输入python可以直接使用?
这是因为环境变量目录里面有一个python.exe可执行文件,如果这个python.exe文件重命名为xiaoshagua.exe了,那你就得用xiaoshagua来启动python了。
问题2:为什么linux下配置python环境变量略有不同,还加了一个alias别名呢?
这是因为linux下一般都装有很多个版本,尤其是mac还自带了2.7版本,各种版本下的可执行文件名字都对应了其版本号,alias是为了给他一个别名,不加别名的话你就得输入python3.7启动也是可以的哦。
问题3:为什么我装了python3还配置了环境变量但是默认使用的是2.7呢?
很重要的一个问题就是环境变量的名字不要冲突哦,你python2.7和python3使用的名字都叫python,系统也很为难,但是这个是有一个优先级的,会先到usr/bin,usr/local/bin里面去找,没有的话才会去别的目录找
2、安装完python了,那我们来说一下安装目录里面各目录都是干啥的吧,windows为例子
Dlls:这是python自己的c语言库,带.dll后缀的文件都是c语言开发的动态链接库
Doc:python官方手册目录,全英文的,可以查阅
include:c语言相关的头部文件目录
Lib:是python自带的模块,很重要。其中site-packages,第三方模块的安装路径都在这里,只要是通过pip下载的模块都放到这个路径下面了
Script:包的管理工具,pip,所以这个还是需要在环境变量下配置一下的。方便后续使用
3、对于python很重要的一句话就是
万物皆为对象,一个函数,一个方法,哪怕是一个变量都是一个对象。
4、安装完python之后,还要安装ipython,因为ipython有高亮显示,还有报错提示,会直观很多。
pip install ipython
5、那么我们python的导包机制是怎样的呢?同目录-环境变量-.pth
from selenium import webdriver
导入文件,首先会在同目录查找,同目录没有,就去环境变量里面找,环境变量还没有,就去当前目录或者环境变量里面带有.pth的文件里面去找
6.为什么我们导包之后可以直接使用其中的一些方法呢?
那是因为python包里是有__init__.py文件的,里面写了方便别人调用的方法,比如json包中init.py
7.让我们开启自动化操作的大门吧
这是selenium官方文档
https://python-selenium-zh.readthedocs.io/zh_CN/latest/2.%E5%BC%80%E5%A7%8B/
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') kw = driver.find_element_by_id('kw') kw.send_keys('selenium') su = driver.find_element_by_id('su') su.click()
值得注意的一点是很多地方需要加上等待时间,说不好页面没有加载好,找不到你想要找的标签
8.升级一下,让我们把用例写到单元测试框架unittest里面吧
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys import time class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_search_in_python_org(self): driver = self.driver driver.get('http://www.baidu.com') #断言,确认页面标题中是否含有百度这个单词 self.assertIn('百度', driver.title) elem = driver.find_element_by_id('kw') elem.send_keys('王雪') elem.send_keys(Keys.RETURN) time.sleep(3) assert "No results found" not in driver.page_source def tearDown(self): self.driver.close() if __name__ == '__main__': unittest.main()