zoukankan      html  css  js  c++  java
  • 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了。

    问题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()
  • 相关阅读:
    ubuntu16.04安装opencv3.4.0
    基于flask+gunicorn+nginx来部署web App
    ubuntu更换pip install,apt-get,conda install 成国内源
    Ubuntu16.04安装编译caffe以及一些问题记录
    Tutorial for MI5 ! flash MI5 to Native Anriod 9
    在服务器上实现SSH(Single Stage Headless)
    .NET Core容器化开发系列(一)——Docker里面跑个.NET Core
    .NET Core容器化开发系列(零)——计划
    基于.NET Standard的分布式自增ID算法--美团点评LeafSegment
    基于.NET Standard的分布式自增ID算法--Snowflake代码实现
  • 原文地址:https://www.cnblogs.com/wangxuetest/p/13253870.html
Copyright © 2011-2022 走看看