appium分层自动化的封装

1.创建一个case包,start_app的python文件

#coding=utf-8
from appium import webdriver
from util.read_init import ReadIni
from util.get_by_local import GetByloacl
import time
def get_driver():
desc={
"platformName":"Android",
"platformVersion":"5.1.1",
"deviceName":"emulator-5554",
"appPackage":"com.tencent.mobileqq",
"appActivity":".activity.SplashActivity",
"noReset":"True"

}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desc)
return driver

def get_click():
get_by_local=GetByloacl(driver)
get_by_local.get_element('click').click()
time.sleep(1)
get_by_local.get_element('username').send_keys('11111')
get_by_local.get_element('password').send_keys('22222')


driver=get_driver()
get_click()
----------------------------------------------------------------------------------------------

2.创建一个config目录,text1.ini文件

[login_element]
click=id>com.tencent.mobileqq:id/btn_login
username=classname>android.widget.EditText
password=id>com.tencent.mobileqq:id/password
login_button=loginbutton
[course_element]
course=price

 

----------------------------------------------------------------------------------------------------------------------------------------

 3.创建util包,创建get_by_loacl的python文件 读取配置文件

#coding=utf-8
from util.read_init import ReadIni

class GetByloacl:
def __init__(self,driver):
self.driver=driver
def get_element(self,key):
read_ini = ReadIni()
local=read_ini.get_value(key)
if local!=None:
by=local.split('>')[0]
local_by=local.split('>')[1]
if by=='id':
return self.driver.find_element_by_id(local_by)
elif by=='classname':
return self.driver.find_element_by_class_name(local_by)
else:
return self.driver.find_element_by_xpath(local_by)
else:
return None

(2)封装定位信息的python文件

#coding=utf-8
import configparser
class ReadIni():
def __init__(self,file_path=None):
if file_path==None:
self.file_path=r'E:\Users\00\PycharmProjects\untitled\config\text1.ini'

else:
self.file_path=file_path
self.data=self.read_ini()


def read_ini(self):
read_ini = configparser.ConfigParser()
read_ini.read(r'E:\Users\00\PycharmProjects\untitled\config\text1.ini')
return read_ini
def get_value(self,key,section=None):
if section==None:
section='login_element'
try:
value = self.data.get(section, key)
except:
value=None

return value


if __name__=='__main__':
read_ini=ReadIni()
print(read_ini.get_value("course","course_element"))

--------------------------------------------------------------------------------------------------------------------------------------------

4.创建page包,创建一个 login_page的python文件

#coding=utf-8
from util.get_by_local import GetByloacl
class LoginPage:
def __init__(self,driver):
self.get_by_local = GetByloacl(driver)

def get_username_element(self):
return self.get_by_local.get_element('username')

def get_password_element(self):
return self.get_by_local.get_element('password')


def get_login_elemnt(self):
return self.get_by_local.get_element('click')

----------------------------------------------------------------------------------------------------------------------------

扫描二维码关注公众号,回复: 3591408 查看本文章

5.创建一个handle包,login_handle的python文件

#coding=utf-8
from page.login_page import LoginPage
class Login_handle():
def __init__(self,driver):
self.login_page=LoginPage(driver)
def send_username(self,user):

self.login_page. get_username_element().send_keys(user)
def send_password(self,password):
self.login_page.get_password_element().send_keys(password)
def send_click(self):
self.login_page.get_login_elemnt().click()

 

---------------------------------------------------------------------------------------------------------------------------------------

6.创建bussiness包,一个 login_bussiness的python文件

#coding=utf-8
from handle.login_handle import Login_handle
class Login_bussiness:
def __init__(self,driver):
self.login_handle=Login_handle(driver)
def login_pass(self):
self.login_handle.send_username('11111')
self.login_handle.send_password('22222')
self.login_handle.send_click()

def login_user_error(self):
self.login_handle.send_username('12111')
self.login_handle.send_password('25222')
self.login_handle.send_click()

 

猜你喜欢

转载自www.cnblogs.com/xuzhongtao/p/9790519.html