框架综合实践(1)-driver的封装(capability)

读取yaml配置文件:

有两种方式,一个是file open,一个是with open

方式1

file = open('../config/WiFibanlv_caps.yaml', 'r')

data = yaml.load(file)

file.close() #必须使用close,否则文件会出现占用情况

方式2:

with open('../config/WiFibanlv_caps.yaml', 'r', encoding='utf-8') as file:

    data = yaml.load(file)

安装包的相对路径使用方法:

步骤1:先导入对应的模块import os

步骤2:找到当前文件的目录,使用方法os.path.driname(__file__)

步骤3:根据当前文件目录,找到上一级目录,以此类推

步骤4:拼接安装包所在的路径

if __name__ == '__main__':

with open('../config/WiFibanlv_caps.yaml', 'r', encoding='utf-8') as file:

     data = yaml.load(file)

base_dir=os.path.dirname(os.path.dirname(__file__))#os.path.dirname(__file__)表示获取当前文件的路径

print(os.path.dirname(__file__))

print(base_dir)

app_path=os.path.join(base_dir, 'app',data['appname'])

#join是表示把几个路径拼接起来,

#将base_dir和app文件夹拼接起来,然后找到app文件夹下面的的apk文件名称

print(app_path)

完整脚本:

1.定义yaml配置文件

2.定义log,conf日志配置文件

 

3.封装capability启动app的脚本desired_caps.py

#!urs/bin/python

#!_*_ coding:UTF-8 _*_

from appium import webdriver

import yaml

import  logging

import logging.config

import os

#日志配置文件

CON_LOG='../config/log.conf'

logging.config.fileConfig(CON_LOG)

logging=logging.getLogger()


def appium_desired():

    #读取配置文件的数据,有两种方式

    #方式1,必须以close结尾

    file = open('../config/WiFibanlv_caps.yaml', 'r')

    data = yaml.load(file)

    file.close() #必须使用close,否则文件会出现占用情况

    #方式2

    with open('../config/WiFibanlv_caps.yaml', 'r', encoding='utf-8') as file:

        data = yaml.load(file)



    logging.info("Initialize  APP...")

    desired_caps = {}

    desired_caps['platformName'] = data['platformName']

    desired_caps['platformVersion'] = data['platformVersion']

    # 第一个模拟器默认127.0.0.1:62001  第二个默认:127.0.0.1:62025

    desired_caps['deviceName'] = data['deviceName']

    #定义apk安装包的相对路径

    base_dir = os.path.dirname(os.path.dirname(__file__))  # os.path.dirname(__file__)表示获取当前文件的路径

    app_path = os.path.join(base_dir, 'app', data['appname'])

    desired_caps['app'] = app_path



    desired_caps['packageName'] = data['packageName']

    desired_caps['appActivity'] = data['appActivity']

    desired_caps['noReset'] = data['noReset']

    desired_caps['unicodekeyboard'] = data['unicodekeyboard']

    desired_caps['resetkeyboard'] = data['resetkeyboard']

    desired_caps['uiautomationName'] = data['uiautomationName']

    logging.info("Start APP...")

    driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps)

    driver.implicitly_wait(8)

    return driver

    #调试当前脚本方法

if __name__ == '__main__':

    appium_desired()

每封装一个模块,都要引用__mian__检测下当前脚本是否能运行成功,capability封装后运行成功结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miss糖豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值