请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

验证码传参问题

图片描述

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

正在回答 回答被采纳积分+3

6回答

提问者 慕莱坞9239046 2020-05-10 11:47:17

https://img1.sycdn.imooc.com//szimg/5eb777f40958daed13530621.jpg

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

0 回复 有任何疑惑可以回复我~
  • 这样的话你只能一步一步把你截图、验证码获取这些每一步每一个函数的结果打印出来去看一下了。实在不行你把你代码打包传递了发我一下。建议你先一步一步打印看一下
    回复 有任何疑惑可以回复我~ 2020-05-10 20:58:40
  • 提问者 慕莱坞9239046 回复 Mushishi #2
    感谢老师的耐心解答
    回复 有任何疑惑可以回复我~ 2020-05-11 18:34:47
提问者 慕莱坞9239046 2020-05-10 10:55:33

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

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

0 回复 有任何疑惑可以回复我~
提问者 慕莱坞9239046 2020-05-09 18:40:56

https://img1.sycdn.imooc.com//szimg/5eb6877909980dcb11950562.jpg

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

0 回复 有任何疑惑可以回复我~
  • 那你这个filename什么时候传递的呢?你把这个filename直接写死,不要外面传递了,反正你每次都是一个图片。
    回复 有任何疑惑可以回复我~ 2020-05-09 22:23:06
Mushishi 2020-05-09 17:23:23

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

0 回复 有任何疑惑可以回复我~
提问者 慕莱坞9239046 2020-05-08 21:11:44

#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 回复 有任何疑惑可以回复我~
Mushishi 2020-05-08 19:02:41

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信