python+appium从Mysql数据库中获取验证码

最近在使用python+appium做APP自动化的时候,需要获取验证码,测试环境有验证码开关,打开时会自动填入验证码,但是这样和实际使用场景还是有差距,于是想从数据库直接获取验证码,数据库用的是Mysql,一下是我使用数据库获取验证码的步骤,希望对小伙伴有帮助

测试界面如下:

 

 

首先,需要连接数据库:

1.在Pycharm的.py文件中直接输入import MySQLdb,提示报错,原因是python库没有自带Mysql驱动,网站找一下,解决方法如下:打开cmd(我用的是win7系统,win10的话可能需要管理员运行cmd),输入pip3 install mysqlclient,会自动下载mysqlclien包,执行成功后如下图,下载成功后,.py文件中import MySQLdb就OK了

 

 

 2.然后就可以开始编写数据库连接语句了

 代码如下:

#通过数据库获取验证码
conn = MySQLdb.connect(host='xxx',port=xxx,user='xxx',passwd='xxx',db='xxx')
cur = conn.cursor()
#查询表中最后一条数据的验证码
sql = """SELECT
XXX
FROM
xxx"""
cur.execute(sql)
smscode = cur.fetchone()

 

遇到的问题:

  1.提示:MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'xxx' (10060)"),详情如下:

    File "C:\Program Files\Python37\lib\site-packages\MySQLdb\__init__.py", line 84, in Connect
    return Connection(*args, **kwargs)
    File "C:\Program Files\Python37\lib\site-packages\MySQLdb\connections.py", line 179, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
    MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'xxx' (10060)")

    原因分析:1.数据库用户名密码不对

   2.host没写正确,用的是外网连接

解决办法:

  针对原因1,请确认连接串中的用户名、密码和数据库名称正确

  针对原因2,因为我这里连接的是阿里云rds数据库,所以有内外网区分,只要把host里的连接串改成内网连接串即可

 

3.将获取到的验证码输入到验证码输入框中,代码如下:

driver.find_element_by_id("xxx").send_keys(smscode)

再重新右键选择run py文件即可

posted @   寒冰宇若  阅读(739)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示