上一篇写的是driver驱动的配置,
那么,这篇呢,我们要搞这三件事情:
1.driver驱动封装
2.日志配置文件加载
3.启动APP配置参数
下面,我们就在代码中实践:
# -*- coding: utf-8 -*- """ @ auth : carl_DJ @ time : 2020-7-9 """ ''' driver 配置封装 日志文件加载 ''' import yaml,os import logging.config from appium import webdriver #读取log.conf 文件中的日志配置 CON_LOG = '../config/log.conf' #print(CON_LOG) logging.config.fileConfig(CON_LOG) logging = logging.getLogger() def appium_desired(): #打开 并读取caps.yaml文件,这里用with方法 with open('../config/caps.yaml','r',encoding='utf-8') as file: data = yaml.load(file) #参数化需要打开运行设备的一些信息 desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = data['platformVersion'] desired_caps['deviceName'] = data['deviceName'] #设定文件的根目录地址 base_path = os.path.dirname(os.path.dirname(__file__)) #设定app(kaoyan.apk)的路径 app_path = os.path.join(base_path,'app') app_name = os.path.join(app_path,data['appname']) desired_caps['app'] = app_name #启动app时,清除app里面原有的数据 desired_caps['noReset'] = data['noReset'] #使用unicodekeyboard输入法,因为账号可能涉及到中文 desired_caps['unicodekeyboard'] = data['unicodeKeyboard'] #重置输入法到初始状态 desired_caps['resetKeyboard'] =data['resetKeyboard'] desired_caps['appPackage'] = data['appPackage'] desired_caps['appActivity']=data['appActivity'] #打印log信息 logging.info('========start run app===========') #启动 driver = webdriver.Remote('http://'+str(data['ip']) +':' +str(data['port']) + '/wd/hub',desired_caps) # driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps) #设置等待时间 driver.implicitly_wait(5) return driver if __name__ == '__main__': appium_desired()
这里我没有用到os.path模块,
1.是因为在selenium自动化框架中,使用的全是os.path模块,
2.不同的方法,可以丰富知(姿)识(势) ~
>> 这里说一下相对路径符号的含义:
① " . “表示当前目录
②” … “表示当前目录的上一级目录
③” ./ “表示当前目录下的某个文件或文件夹,视后面跟着的名字而定
④” …/ "表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定
如果要使用os模块:
小鱼建议定义全局变量,这样以后引用路径,省时省力。
不然的话,可有的忙喽!!