验证码传参问题

来源:5-3 项目中实现数据驱动,重构case及business

慕莱坞9239046

2020-05-08

图片描述

图片描述图片描述
老师,这是怎么回事呢,我看其他同学也有遇到这个问题,有人说是验证码那里不能直接传code,要传一个验证码地址,是不是要传一个code.png吗

写回答

6回答

慕莱坞9239046

提问者

2020-05-10

//img.mukewang.com/szimg/5eb777f40958daed13530621.jpg

老师,我知道了,要在这写成图片的路径,直接写code是不行的,我也不知道您那为什么可以,我看的是其他同学的解答也遇到了这个问题,也是这么解决的,还有就是下面ddt课程中excel中也得写成这个路径才行,直接写code的话,报错和这个报错一样;还有就是验证码截图和输入的不一样,我总怀疑那个图片验证码的接口有问题,这个不管啦,总之谢谢老师的耐心解答。

0
2
慕莱坞9239046
回复
Mushishi
感谢老师的耐心解答
2020-05-11
共2条回复

慕莱坞9239046

提问者

2020-05-10

//img1.sycdn.imooc.com/szimg/5eb76b9f0942c80c13300614.jpg

老师,我已经写死路径了,还是和之前一样,不用ddt的时候,能输入验证码,但是每次都输入的和截图的都不一样,用ddt的时候,直接就不输入验证码了,实在是不知道哪里出了问题

0
0

慕莱坞9239046

提问者

2020-05-09

//img.mukewang.com/szimg/5eb6877909980dcb11950562.jpg

这是老师的代码,那个网站调用图片验证码的接口参数变了,地址是https://www.showapi.com/apiGateway/view/?apiCode=932&pointCode=2   我那样写,不用ddt的时候,能输入验证码,但是每次都输入不对,用ddt的时候,直接就不输入验证码了,我也不知道怎么改了,老师,帮忙一下呗

0
1
Mushishi
那你这个filename什么时候传递的呢?你把这个filename直接写死,不要外面传递了,反正你每次都是一个图片。
2020-05-09
共1条回复

Mushishi

2020-05-09

//img.mukewang.com/szimg/5eb676650972c09e06770478.jpg看你这里,你传递图片得时候这个弄了一个名字文件名字?你不应该弄文件路径吗?

0
0

慕莱坞9239046

提问者

2020-05-08

#coding=utf-8
from PIL import Image
from ShowapiRequest import ShowapiRequest
import time
class GetCode:
   def __init__(self,driver):
       self.driver = driver

   def get_code_image(self,file_name):
       self.driver.save_screenshot(file_name)
       code_element = self.driver.find_element_by_id('getcode_num')
       left = code_element.location['x']
       top = code_element.location['y']
       right = code_element.size['width'] + left
       height = code_element.size['height'] + top
       im = Image.open(file_name)
       img = im.crop((left, top, right, height))
       img.save(file_name)
       time.sleep(2)

   # 解析图片,获取验证码
   def code_online(self,file_name):
       self.get_code_image(file_name)
       r = ShowapiRequest("http://route.showapi.com/932-2", "164135", "7eb4c4b4448e4fe3a9dad2cd2c8e0e02")
       r.addBodyPara("length", "5")
       r.addBodyPara("specials", "false")
       r.addBodyPara("secure", "false")
       r.addBodyPara("image", file_name)
       res = r.post()
       print(res.text)
       text = res.json()['showapi_res_body']['code']
       time.sleep(2)
       return text

老师这是get_code.py里的代码,有问题吗,实在是不知道哪里错了,我学习5-7的课程,在报告中也是出现了同样的问题

0
0

Mushishi

2020-05-08

getcode 那里你需要获取验证码,要传递一张图片进去,然后获取到验证码。但是我猜测你现在应该传递了一个数字编码进去

0
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程