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

來源:互聯網
上載者:User

標籤:utf-8   動態   end   圖片   需要   表示   tools   uri   官方文檔   

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

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

jinja2簡介

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

要瞭解jinja2,那麼需要先理解模板的概念。模板在Python的web開發中廣泛使用,它能夠有效將商務邏輯和頁面邏輯分開,使代碼可讀性增強、並且更加容易理解和維護。
模板簡單來說就是一個其中包涵佔位變數表示動態部分的檔案,模板檔案在經過動態賦值後,返回給使用者。
--> 可以理解為渲染

2.pip安裝jinja2

pip install jinja2

templetpage模板

1.建立一個templetpage,不用弄尾碼,目錄格式如下

2.開啟檔案在裡面寫入以下模板

# -*- coding: utf-8 -*-from page import toolspages = 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 toolspages = tools.parseyaml()def get_locater(clazz_name, method_name):    locators = pages[clazz_name][‘locators‘]    for locator in locators:        if locator[‘name‘] == method_name:            return locatorclass 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.可以在裡面繼續輸入代碼,測試下是不是能正常調用成功

  

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.