标签:rip http homepage 开发 微博 输入 就是 import object
每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板
python里面生成模板有两个模块可以选择:templet和mako
简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化
接着上一篇讲:appium+python自动化49-yaml管理定位元素
1.jinja2官方文档:官方文档
要了解jinja2,那么需要先理解模板的概念。模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强、并且更加容易理解和维护。
模板简单来说就是一个其中包涵占位变量表示动态的部分的文件,模板文件在经过动态赋值后,返回给用户。
--> 可以理解为渲染
2.pip安装jinja2
pip install jinja2
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 %}
1.运行tools.py脚本会自动在当前脚本目录生成一个pages.py文件,如下
# -*- 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
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.可以在里面继续输入代码,测试下是不是能正常调用成功
appium+python自动化50-生成定位对象模板templet(jinja2)
标签:rip http homepage 开发 微博 输入 就是 import object
原文地址:https://www.cnblogs.com/yoyoketang/p/9047821.html