验证码传参问题
来源:5-3 项目中实现数据驱动,重构case及business

慕莱坞9239046
2020-05-08
老师,这是怎么回事呢,我看其他同学也有遇到这个问题,有人说是验证码那里不能直接传code,要传一个验证码地址,是不是要传一个code.png吗
6回答
-
慕莱坞9239046
提问者
2020-05-10
老师,我知道了,要在这写成图片的路径,直接写code是不行的,我也不知道您那为什么可以,我看的是其他同学的解答也遇到了这个问题,也是这么解决的,还有就是下面ddt课程中excel中也得写成这个路径才行,直接写code的话,报错和这个报错一样;还有就是验证码截图和输入的不一样,我总怀疑那个图片验证码的接口有问题,这个不管啦,总之谢谢老师的耐心解答。
022020-05-11 -
慕莱坞9239046
提问者
2020-05-10
老师,我已经写死路径了,还是和之前一样,不用ddt的时候,能输入验证码,但是每次都输入的和截图的都不一样,用ddt的时候,直接就不输入验证码了,实在是不知道哪里出了问题
00 -
慕莱坞9239046
提问者
2020-05-09
这是老师的代码,那个网站调用图片验证码的接口参数变了,地址是https://www.showapi.com/apiGateway/view/?apiCode=932&pointCode=2 我那样写,不用ddt的时候,能输入验证码,但是每次都输入不对,用ddt的时候,直接就不输入验证码了,我也不知道怎么改了,老师,帮忙一下呗
012020-05-09 -
Mushishi
2020-05-09
看你这里,你传递图片得时候这个弄了一个名字文件名字?你不应该弄文件路径吗?
00 -
慕莱坞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的课程,在报告中也是出现了同样的问题
00 -
Mushishi
2020-05-08
getcode 那里你需要获取验证码,要传递一张图片进去,然后获取到验证码。但是我猜测你现在应该传递了一个数字编码进去
00