码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2020-05-25 15:16:17      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:_id   self   提示   imp   element   mamicode   line   文件中   fetchone   

最近在使用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文件即可

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

标签:_id   self   提示   imp   element   mamicode   line   文件中   fetchone   

原文地址:https://www.cnblogs.com/wx170119/p/12955222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!