回看先前的个人51CTO博客文章,才发现自己已有一段时间未曾写下几篇文章,记录自己的一个学习感悟与心得,借着窗外淅淅沥沥的小雨,淅沥的这心情,分享这小小的学习心得,希望对看到文章的朋友有所帮助。

    Selenium

    提到Selenium,做自动化的同学差不多都知道,是一款用于自动化的开源工具,特点多多,开源、免费、强大、跨平台使用,基于不同语言有不同额Selenium实现版本。笔者先前一直从事Selenium+Java+Testng的GUI以及接口的自动化方面应用,前些日子偶然看到一篇虫师写作的一篇关于python+Selenium的自动化博客文章,笔者也有意python的学习,不免为之心动,决定尝试python语言基础上额Selenium自动化实现中,希望可以搭建一套可适用于当前工作需要的自动化框架(提到框架,心里有点没底)。

    首先做一个对比,python与Java语言上的Selenium,个人对比感觉:

    1.Java有工具的依附需求,且框架完成后,部署略复杂,需要一定的语言基础;

    2.python则不同,不仅可以有Java一样的跨平台应用,且python的工程实现部署安装简单,相较于Java,再有就是python有一些Java所不能实现的一些功能,例如:python+Selenium可以实现不同版本不同浏览器(支持IE、Firefox、chrome)的调用实现,真正可以实现不同浏览器上的GUI自动化实现;

    3.先前基于Java基础上的Selenium自动化,更多的是在Firefox上的应用,未曾在IE与chrome上实现,有看最新的Selenium浏览器支持,ie、ff、safari、opera、chrome,此处请原谅笔者的孤陋,以Java+Selenium无法实现IE与chrome的GUI自动化实现,这牵强的理由做驳论;

    4.笔者有python语言学习的需要;


    Windows平台搭建


    Python下载安装:

    下载地址:https://www.python.org/downloads/release/python-2711/

    1.根据自身电脑系统,选择适用版本进行下载安装,下载文件双击执行即可(笔者安装的2.7.11版本python已集成pip 【python的安装包管理工具】setuptools 【python的基础包工具】,是否已安装,可查看python安装目录下Lib\site-packages下是否存在setuptools与pip两个目录即可,如果安装版本不存在,需要自行下载安装包安装);

    2.安装完成后,系统环境变量path增加python安装路径;

命令行下执行python命令,出现下图所示,即表示python且pip安装成功

Python+selenium的GUI自动化实现_自动化

    

    Selenium在线安装:

    个人电脑联网状态下,命令行下执行: pip install -U selenium,看到安装进度条100%,即表示安装成功,或可通过查看安装目录下Lib\site-packages下是否存在selenium,查看是否安装成功;


    安装Chrome driver

    调用chrome浏览器插件下载地址:https://code.google.com/p/chromedriver/downloads/list,下载得到chromedriver.exe文件,放到chrome的安装目录 下...\Google\Chrome\Application\ ,设置path环境变量,追加chrome的安装目录,然后python IDE下调用运行:

    >>> from selenium import webdriver
    >>> driver=webdriver.Chrome()

    chrome调用启动成功,即表示插件安装成功;


    安装IE driver

    调用IE浏览器插件下载地址:http://selenium-release.storage.googleapis.com/index.html,下载得到文件,放到IE的安装目录 下C:\Program Files (x86)\Internet Explorer,设置path环境变量,追加IE的安装目录,然后python IDE下调用运行:

    >>> from selenium import webdriver
    >>> driver=webdriver.Ie()

    IE调用启动成功,即表示插件安装成功;


    Python+Selenium的具体应用示例


    51CTO技术家园登录

    #encoding=utf-8
    from selenium import webdriver
    import time

    #本地火狐浏览器调用
    driver=webdriver.Firefox()
    driver.get('http://home.51cto.com/index.php')#访问51CTO技术家园
    #51技术家园用户名输入
    elem_user=driver.find_element_by_name('email')
    elem_user.clear()
    elem_user.send_keys('xiao_long66')
    #51技术家园用户密码输入
    elem_pass=driver.find_element_by_name('passwd')
    elem_pass.clear()
    elem_pass.send_keys('******')
    #点击登录按钮
    elem_login=driver.find_element_by_class_name('loginbtn')
    elem_login.click()


    #新开浏览器窗口间切换
    window_current=driver.current_window_handle#获取浏览器当前窗口
    #获取浏览器所有窗口,并且换
    for window in driver.window_handles:
        print window.title
        driver.switch_to_window(window)


文章参考虫师博客,感谢虫师的辛苦分享:

http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html