Selenium 怎么在验证登录时需要获取手机验证码可以自动获得

yunbin_7 · 2016年12月06日 · 最后由 白文霞 回复于 2016年12月07日 · 8692 次阅读

请问一下,现在用 selenium 做的登录功能的测试,目前,我们系统的登录是,输入手机号码,然后点击获取验证码,再输入验证码后,点击登录。这个流程的话,获取短信验证码不能实时获取,有没有办法可以实时获取到短信验证码?

共收到 14 条回复 时间 点赞

是要求手机实时获得,还是脚本实时获得呢?

#1 楼 @senlinyimu 脚本可以实时获得,能不能通过点击获取验证码,然后将存到库的验证码按照实际顺序过滤,用脚本去读取出来呢?

获得填进去就行了吧?
你是想模拟点击获取验证码这个操作,然后再把验证码读出来,执行下一步业务还是?

通过 sql 直接去数据库提取或者是用请求的方式去内网查呢。

#4 楼 @zz3772 你的方式跟我想的是一样的,只是不知道如何处理?

首先知道想法,其次根据想法去写代码编程。

想法来源:

1、万能码;------------涉及验证码相关代码更改;

2、图片识别;------------建议用Python的图片识别模块;

3、真机短信读取;----------写个Android应用读取并返回;

4、服务器日志读取;-----------读取服务器日志,过滤关键字获取验证码;

5、数据库数据读取;-----------JDBC链接服务器,获取验证码(包括从已发送短信内容中正则获取);

6、接第三方短信平台;-----------和那些刷单平台对接api,从他们的api获取短信验证码。

看一下代码,验证码是存在什么地方的,直接去查数据库的就好

这个类似于一些银行,他们的 APP 具备这个功能。

@yunbin_7 数据库方式:1.连接数据库;2.执行查询 sql;3.提取验证码(正则)
内网请求方式:1.内网登录获取 cookie;2.验证码查询;3.提取验证码(正则)
实现挺简单的,百度很多资料。

6 楼正解!

6 楼正解;做过类似的,就是数据库里取;先找到存验证码的表,然后匹配下你输入的手机号排序取最新的就行了

#11 楼 @archy 请教一下,我用的是 uiautomator 框架,然后通过 JDBC 连接数据库,但是会报错

#12 楼 @Tester_wenxia 我当时是用 python+selenium 做的 web 端的,数据库的读取也是用的 python。其实就是一个链接数据库,从数据库找到对应存放验证码的表 的操作

#13 楼 @archy 哦哦,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册