python自动化-selenium简单使用

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了。

必须设置的关于python的三个目录作为环境变量

1、python的可执行文件C:\Users\xue\AppData\Local\Programs\Python\Python37

2、python的所有第三方类包的目录:C:\Users\xue\AppData\Local\Programs\Python\Python37\Lib\site-packages

3、python的所有第三方的可执行程序:C:\Users\xue\AppData\Local\Programs\Python\Python37\Scripts

 

 

问题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()

 

posted @ 2020-07-06 11:22  搬砖小天使  阅读(404)  评论(0编辑  收藏  举报