• 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作


    当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码:

    1、首先新建配置文件*.ini格式

    config.ini

    [db]
    
    #基础地址:
    baseurl = http://192.168.xxx
    
    #参数:
    m_user = 13077997162
    m_pass = 123456

    2、调用configparser模块进行读取文件操作,没有的自行下载

    login.py

    import configparser
    
    
    def mlogin():
        '''
        登录函数
        :return:【cookie】:value
        '''
        cf = configparser.ConfigParser()
        cf.read("./config.ini")
        baseurl = cf.get("db", "baseurl")
        #接口地址
        url = baseurl + "/Admin/Account/loginupdate.html"
        m_user = cf.get("db", "m_user")
        m_pass = cf.get("db", "m_pass")
        return cookie_value(url,m_user,m_pass)

    读取的url,m_user,m_pass的值传参到获取cookie值的方法中,通过用户密码传到接口中再返回cookie值,如下

    def cookie_value(url,username,password):
        '''
        返回cookie:value
        :param url: 地址
        :param username: 用户名
        :param password: 密码
        :return: cookie:value
        '''
        payload = {'username':username,'pwd':password}
        r = requests.post(url=url,data=payload)
        return r.cookies['PHPSESSID']

    返回cookie字符串的值。

    最后编写自动化脚本执行登录如下:

    test.py

    import login
    import configparser
    
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(0.5)
    cf = configparser.ConfigParser()
    cf.read('./config.ini')
    webbaseurl = cf.get('db','baseurl')
    driver.get(webbaseurl + "/xxx/Public/index")
    driver.maximize_window()
    sleep(0.5)
    #添加cookie
    value = login.mlogin()
    driver.add_cookie({'name': 'PHPSESSID', 'value': value})
    sleep(0.5)
    # 刷新页面
    driver.refresh()
    sleep(0.5)

    参考文章:

    感谢:

    on testing:《Python之配置文件读写

    Mike_Zhang:《读取配置文件和自定义配置文件(python实现)

  • 相关阅读:
    oracle 锁查询
    ORACLE 本session产生的redo
    UML
    面向对象
    设计思维
    程序员习惯
    程序员修炼之道
    架构指南
    微服务架构
    测试用例
  • 原文地址:https://www.cnblogs.com/Owen-ET/p/9604424.html
Copyright © 2020-2023  润新知