Appium 如何获取手机短信中的验证码

神奇的小新 · 2017年01月03日 · 最后由 hxr141516 回复于 2019年12月26日 · 6600 次阅读

获取手机短信中的验证码

方式:adb log 来获取短信内容

import os

def GetCodeFromSms():

os.system("adb logcat -c")
cmd = ' adb logcat -d |findstr D/Mms/Txn'

while(1):
    smscode = os.popen(cmd).read()
    print smscode
    if (smscode!=""):
        smscode = smscode.split("验证码:")[1].split(",")[0]
        break;

print "code is :",smscode

感觉该方式不是特别好用,如果收不到短信就陷入了死循环,希望各位能给出其他解决方式!

共收到 16 条回复 时间 点赞

iOS 的话你怎么处理?

抱歉我还没有试过 ios,年后会试试

可以问下开发,短信验证码存在哪了,我们是存在 redis 了,直接 get 就行

@601068603 对于手机短信验证码获取不太懂,代码可以稍微该下。本地没尝试,你可以试试看哦!

def getCodeFromSms(timeout=20):
    os.system("adb logcat -c")
    cmd = ' adb logcat -d |findstr D/Mms/Txn'
    n = 0
    while n < timeout:
        smscode = os.popen(cmd).read()
        print(smscode)
        if smscode != " ":
            smscode = smscode.split("验证码:")[1].split(",")[0]
            print("code is {}:".format(smscode))
            break
        else:
            time.sleep(1)
            n += 1
            print('已等待:{}秒'.format(n))
            continue
    print('短信接收失败!')
6楼 已删除

#3 楼 @superzhuo 和第三方交涉,我们这边没有存储,所以只能另想办法了

和我公司的情况一下,我现在的解决方法:编写一个 app,当手机收到短信后,自动通过接口(自己搭的 web 服务)将验证码发送到 web 服务,然后 web 服务可以验证码保存到文件或数据库中

请问你这个是放在哪里啊,在是什么时候执行啊?

请问,他这个文件是放在什么地方执行的额

alisa_tao 回复

这是一个方法,在你需要的时候去调用就可以了

你好,想问下,获取手机验证码,我手机需要 root 吗?我现在不知道在哪个文件里

请教一下 app 上获取验证码时,只能看到部分短信,有短信验证码的短信都看不到,你们有遇到过这个问题吗?

不错的

大哥 你这个好像行不通啊! 你这边还有没有读取短信验证码的方法!

可以具体分享一下吗

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