来看几个脚本分离具体实施
先看截图
POM模式说明.png
PO文件夹就是POM核心实施方法,也就是对每个页面元素进行元素及方法拆分整合;
TestCase文件夹对页面进行测试,当然你也也可以在这里面写上自己的case用例
我们看几个元素分离的例子:
base_page.py
author = 'damao'
from appium import webdriver
class Base(object):
def __init__(self):
pass
"""控制启动APP"""
def remote_app(self):
self.devices_env = {
"platformName": "Android",
"deviceName": "RKKDU17C12006192",
"platformVersion": "8.0",
"appPackage": "com.szyh.ui", # apk包名
"appActivity": "com.szyh.ui.login.WelcomeActivity", # app的launchable-activity
"unicodeKeyboard": True,
"resetKeyboard": True
}
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", self.devices_env)
login_page.py
author = 'damao'
from Appium_JDPE_Test.PO import base_page
class LoginPage(base_page.Base):
"""登陆页面元素维护"""
user_name = "com.szyh.ui:id/userid" # 登陆页面用户名输入框
pass_word = "com.szyh.ui:id/pwd" # 登陆页面密码输入框
login_btn = "com.szyh.ui:id/login" # 登陆页面”登陆“按钮
full_screen = "com.szyh.ui:id/cpi_welcome" # 启动页面”全屏显示“按钮
enter_app = "com.szyh.ui:id/btn_welcome_last" # 启动页面
def set_username(self, username):
name = self.driver.find_element_by_id(self.user_name)
name.send_keys(username) # 输入用户名
def set_password(self, password):
pwd = self.driver.find_element_by_id(self.pass_word)
pwd.send_keys(password) # 输入密码
def click_login(self):
loginbtn = self.driver.find_element_by_id(self.login_btn)
loginbtn.click() # 单击登录
def set_fullscreen(self):
fullscreen = self.driver.find_element_by_id(self.full_screen)
fullscreen.click() # 点击”全屏显示按钮“
def to_enter_app(self):
enterapp = self.driver.find_element_by_id(self.enter_app)
enterapp.click() # 点击进入按钮进入APP
regist_user_page.py
author = 'damao'
from Appium_JDPE_Test.PO import base_page
import subprocess
"""点击首页用户注册按钮,进入用户注册页面"""
class RegistPage(base_page.Base):
"""注册页面元素维护"""
regist_btu = "com.szyh.ui:id/textView2" # 首页“没有账号?注册”按钮
nickname = "com.szyh.ui:id/nicheng" # 昵称
phone = "com.szyh.ui:id/phoneNo" # 手机号
login_password = "com.szyh.ui:id/pwd" # 登录密码
confirm_password = "com.szyh.ui:id/repwd" # 确认密码
check_out_btu = "com.szyh.ui:id/ck_agreen" # 勾选注册协议
regist = "com.szyh.ui:id/registry_btn" # 注册按钮
massage_box = "com.szyh.ui:id/check_code" # 短信验证码输入框
massage_sub_btu = "com.szyh.ui:id/submit_btn" # 提交按钮
def click_regist_btu(self): # 点击首页“没有账号?注册”按钮
self.driver.find_element_by_id(self.regist_btu).click()
def set_nickname(self,nickname): # 输入昵称
self.driver.find_element_by_id(self.nickname).send_keys(nickname)
# x = subprocess.check_output('adb devices', shell=True).split()[1][:-7]
# self.driver.find_element_by_id(self.nickname).click()
# subprocess.Popen('adb -s %s shell input text %s' % (x, nickname), shell=True)
def set_phone(self,phone_nub): # 输入电话号码
self.driver.find_element_by_id(self.phone).send_keys(phone_nub)
def set_login_password(self,login_passwd): # 输入登录密码
self.driver.find_element_by_id(self.login_password).send_keys(login_passwd)
def set_confirm_password(self,confirm_passwd): # 确认输入登录密码
self.driver.find_element_by_id(self.confirm_password).send_keys(confirm_passwd)
def click_check_btu(self): # 勾选注册用户协议
self.driver.find_element_by_id(self.check_out_btu).click()
def click_regist(self): # 点击“注册”按钮
self.driver.find_element_by_id(self.regist).click()
def set_massage(self,msg): # 输入验证码
self.driver.find_element_by_id(self.massage_box).send_keys(msg)
def click_submsg_btu(self): # 点击验证码提交按钮
self.driver.find_element_by_id(self.massage_sub_btu).click()
在命令这个py文件的时候,最好使用当前页面的名字来命名,这样一样就能看出来,
这些技巧和方法还是需要结合实际测试例子来熟悉和领悟
网友评论