1、公共字典的提取
def desired():
desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '11'
desired_caps['deviceName'] = 'Z81QAEY2FH25D'
desired_caps['appPackage'] = 'com.sina.weibo'
desired_caps['appActivity'] = '.SplashActivity'
desired_caps['noReset'] = True
return desired_caps #将字典的值返回给desired()
print(desired())
2、基类的提取
from appiumimport webdriver
from timeimport sleep
from selenium.webdriver.common.byimport By
from selenium.webdriver.support.uiimport WebDriverWait
from selenium.webdriver.supportimport expected_conditionsas EC
class BaseView():
def __init__(self,driver):
self.driver=driver
def waitActivity(self,waitactivity,time):
self.driver.wait_activity(waitactivity,time)
def find_element(self,*loc):
try:
WebDriverWait(self.driver,100).until(EC.visibility_of_element_located(loc))
return self.driver.find_element(*loc)
except:
print("%s 页面元素未找到 %s 元素" %(self,loc))
3、PO优化后的代码
from appiumimport webdriver
from timeimport sleep
from selenium.webdriver.common.byimport By
from BaseViewimport BaseView
from Desired_capsimport desired
desired_caps=desired()
class Weibo(BaseView):
LoginBthElement=(By.ID,"com.sina.weibo:id/titleBack")
MobileBtnElement=(By.ID,"com.sina.weibo:id/et_login_view_phone")
ServerUrl="http://localhost:4723/wd/hub"
def open(self,waitActivity,time):
self.driver=webdriver.Remote(self.ServerUrl,desired())
self.waitActivity(waitActivity,time)
def LogBtnObj(self):
LoginBtn=self.driver.find_element(*self.LoginBthElement)
LoginBtn.click()
def MobileBtnObj(self,mobileValue):
MobileBtn=self.driver.find_element(*self.MobileBtnElement)
MobileBtn.send_keys(mobileValue)
4、测试用例TestCase
import unittest
from timeimport sleep
from appium.webdriverimport webdriver
from weiboimport Weibo
class TestWeibo(unittest.TestCase):
def setUp(self):
self.driver=webdriver
def test_login(self):
self.weibo=Weibo(self.driver)
self.weibo.open(".SplashActivity",10)
sleep(5)
self.weibo.LogBtnObj()
sleep(5)
self.weibo.MobileBtnObj("12345678901")
def tearDown(self):
pass
if __name__=="__main__":
unittest.main()