python自动测试验证码识别软件_Python 自动化之验证码识别

#-*- coding: utf-8 -*-

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.common.keys importKeysfrom selenium.webdriver.support.ui importSelectimportunittest,time,re,sysfrom PIL importImageimportpytesseract

reload(sys)

sys.setdefaultencoding('utf-8')classYpt(unittest.TestCase):defsetUp(self):

self.driver=webdriver.Chrome()

self.driver.implicitly_wait(30)

self.base_url= "http://*********.com"self.verificationErrors=[]

self.accept_next_alert=Truedefget_streen(self):

driver=self.driver

driver.save_screenshot('D://aa.png') #截取当前网页,该网页有我们需要的验证码

imgelement = driver.find_element_by_xpath('//*[@id="id_checkCode"]') #定位验证码

location = imgelement.location #获取验证码x,y轴坐标

size=imgelement.size #获取验证码的长宽

rangle=(int(location['x']),int(location['y']),int(location['x']+size['width']),int(location['y']+size['height'])) #写成我们需要截取的位置坐标

i=Image.open("D://aa.png") #打开截图

frame4=i.crop(rangle) #使用Image的crop函数,从截图中再次截取我们需要的区域

frame4.save('D://frame4.png')

img= Image.open('D://frame4.png')printimg.load()

aa=.image_to_string(img)print u"识别的验证码为:"

printaaif aa == "": #如果识别为空,则再一次识别

driver.find_element_by_xpath('//*[@id="id_checkCode"]').click()

self.get_streen()returnaadeftest_ypt(self):

now_time= open("yuheng.txt","a")

driver=self.driver

driver.maximize_window()

driver.get(self.base_url+ "/userLoginOut.screen")

driver.find_element_by_id("j_username").clear()

driver.find_element_by_id("j_username").send_keys("username")

driver.find_element_by_id("j_password").clear()

driver.find_element_by_id("j_password").send_keys("password")

driver.find_element_by_id("id_imgCode").clear()

driver.find_element_by_id("id_imgCode").send_keys(self.get_streen())

driver.find_element_by_id("btn-login").click()

driver.find_element_by_id("C5A000005").click()

driver.find_element_by_link_text(u"概况数据").click()

self.assertEqual(u"**************", driver.title)

time.sleep(8)defis_element_present(self, how, what):try: self.driver.find_element(by=how, value=what)except NoSuchElementException, e: returnFalsereturnTruedefis_alert_present(self):try: self.driver.switch_to_alert()except NoAlertPresentException, e: returnFalsereturnTrueif __name__ == "__main__":

unittest.main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值