• python下的自动化测试--selenium 验证码输入问题


        之前一直在研究scrapy下数据抓取,在研究ajax数据抓取时碰巧研究了一下selenium,确实很实用,不过只做scrapy下的数据抓取,不怎么合适,一是性能的损耗,一直需要开一个浏览器,二是对于爬虫来说,分析ajax的请求才是正事。好吧,说远了,今天来扯一下我对于自动化测试一些见解。

        python下的自动化测试库实在之多,selenium是浏览器测试的大杀器,关于selenium:

        refer:http://www.seleniumhq.org/

        关于安装和python环境的一些其它指导我就不罗列了,网上一大片:)

        在测试web网站的时候,经常会遇到一些需要验证码的输入,这个时候输入解析验证码,一般有以下的几种方式:

        1.交给程序逻辑处理:

        将图片download下来做验证码识别,然后填入到验证码框中,这样需要有专门的验证码识别块,代码量略大

        2.将验证码的识别码功能暂时注释掉

        这样就省去了验证一步

        3.写死验证码功能

        这样验证码识别就可以随意测试了。

        

        其实以上的三种可能,无非看自己的和程序员们沟通的怎么样和自己的技术水平了,如果你想练练手,完全可以自己做一个验证码识别功能出来,如果和开发者沟通的比如顺利,可以请他们暂时注释一下或者写个临时验证码

        第四种,我们可以自己在python的打开selenium的浏览器的时候继续操作,下面就直接上代码了:

    #coding=utf-8
    
    from splinter import Browser
    import time
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    
    
    
    
    def log_in_doban(Name = '', PassWrod = ''):
        if Name and PassWrod:
            bs = Browser('chrome')
            bs.visit(url='http://www.douban.com/accounts/login?source=main')
            if bs.is_element_present_by_id(id='email'):
                bs.find_by_id(id='email').fill(Name)
                bs.find_by_id(id='password').fill(PassWrod)
                if bs.is_element_present_by_id(id='captcha_field'):
                    #bs.find_by_id('captcha_field').fill(code_img)
                    while True:
                        val = bs.find_by_id(id='captcha_field').first.value
                        if val and len(val)>0:
                            bs.find_by_id('captcha_field').fill(val)
                            break
                        pass
                    pass
                bs.find_by_name('login').click()
                print 'log in'
                #bs.quit()
    
    
    
    if __name__ == '__main__':
        log_in_doban(Name='test_account',PassWrod='test_password')
    

      

    我感觉selenium 可以做的事情很多很多,既然能将浏览用程序来控制,那其实现的功能就会很多很多,比如刷票,比如自动发贴啥的,我就不一一介绍了。

  • 相关阅读:
    flask框架(一):初入
    .py文件打包成.exe文件
    gtk+-3.21.4 static build step in windows XP
    cairo-1.14.6 static compiler msys mingw32
    ffmpeg-20160811-bin.7z
    gtk+2.24.0-glib-2.28.1-staticLib-mingw32-x86-2016-08-10.7z
    ffmpeg-20160806-bin.7z
    glib-2.49.4-msys-x86-staticLib.7z
    Tesseract-OCR text2image.exe [ x86 支持 XP ]
    ffmpeg-20160803-bin.7z
  • 原文地址:https://www.cnblogs.com/codefish/p/4829957.html
Copyright © 2020-2023  润新知