appium+python自動化50-生成定位對象模板templet(jinja2)


前言

每次自己寫pageobject定位元素對象太繁瑣,格式都差不多,只是換個定位方法,這種就可以才有模板的方式,批量生成pageobject定位元素對象的模板
python里面生成模板有兩個模塊可以選擇:templet和mako
簡單來說,本篇實現的目的是用代碼去自動生成代碼,做到代碼自動化

接着上一篇講:appium+python自動化49-yaml管理定位元素

jinja2簡介

1.jinja2官方文檔:官方文檔

jinja2是Flask作者開發的一個模板系統,起初是仿django模板的一個模板引擎,為Flask提供模板支持,由於其靈活,快速和安全等優點被廣泛使用。

  • 相對於Template,jinja2更加靈活,它提供了控制結構,表達式和繼承等。
  • 相對於Mako,jinja2僅有控制結構,不允許在模板中編寫太多的業務邏輯。
  • 相對於Django模板,jinja2性能更好。
  • Jinja2模板的可讀性很棒。

2.pip安裝jinja2

pip install jinja2

3.在jinja2中,存在三種語法:

  • 控制結構 {% %}
  • 變量取值 {{ }}
  • 注釋 {# #}

templetpage模板

1.新建一個templetpage,不用弄后綴,目錄格式如下

2.打開文件在里面寫入以下模板

# -*- coding: utf-8 -*-

from page import tools

pages = tools.parseyaml()


def get_locater(clazz_name, method_name):
    locators = pages[clazz_name]['locators']
    for locator in locators:
        if locator['name'] == method_name:
            return locator

{% for page, locators in page_list.items() %}
class {{page}}:{% for locator in locators %}
    {{locator}} = get_locater('{{page}}', '{{locator}}'){% endfor %}

    {% endfor %}

提取yaml數據

生成pages.py文件

實現效果

1.運行tools.py腳本會自動在當前腳本目錄生成一個pages.py文件,如下

# -*- coding: utf-8 -*-

from page import tools

pages = tools.parseyaml()

# 上海-悠悠 QQ交流群:330467341

def get_locater(clazz_name, method_name):
    locators = pages[clazz_name]['locators']
    for locator in locators:
        if locator['name'] == method_name:
            return locator


class HomePage:
    城市選擇 = get_locater('HomePage', '城市選擇')
    首頁搜索 = get_locater('HomePage', '首頁搜索')

    
class LoginPage:
    微信登錄 = get_locater('LoginPage', '微信登錄')
    手機號登錄 = get_locater('LoginPage', '手機號登錄')
    其它登錄 = get_locater('LoginPage', '其它登錄')
    QQ = get_locater('LoginPage', 'QQ')
    微博 = get_locater('LoginPage', '微博')
    賬號密碼 = get_locater('LoginPage', '賬號密碼')
    輸入賬號 = get_locater('LoginPage', '輸入賬號')
    輸入密碼 = get_locater('LoginPage', '輸入密碼')
    登錄按鈕 = get_locater('LoginPage', '登錄按鈕')

    
class MyPage:
    我的 = get_locater('MyPage', '我的')
    請點擊登錄 = get_locater('MyPage', '請點擊登錄')

2.可以在里面繼續輸入代碼,測試下是不是能正常調用成功

上海-悠悠 QQ交流群:330467341


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM