设为首页 收藏本站
查看: 776|回复: 0

[经验分享] Python+selenium的GUI自动化实现

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-15 09:43:38 | 显示全部楼层 |阅读模式

    提到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安装成功
QQ截图20160215094117.png

    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的具体应用示例

    运维网登录

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

    #本地火狐浏览器调用
    driver=webdriver.Firefox()
    driver.get('http://home.iyunv.com/index.php')#访问运维网
    #运维网用户名输入
    elem_user=driver.find_element_by_name('email')
    elem_user.clear()
    elem_user.send_keys('xiao_long66')
    #运维网用户密码输入
    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)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-178031-1-1.html 上篇帖子: Django中MySQL读写分离技术 下篇帖子: python 安装easy_install和pip
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表