函数放在类中调用

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.原来的函数及调用

import os
import yaml
from appium import webdriver
def android_driver() :
    # 从desired_caps.yaml读取driver配置数据

    # 项目根目录路径即android-ui-autotest文件夹的路径,获取当前文件所在目录的上一级目录
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # capabilities配置文件desired_caps.py路径
    # os.path.dirname返回pyth的父路径
    # os.path.abspath返回pyth的绝对路径
    DESIRED_CAPS_YAML_PATH = BASE_PATH + '\config\desired_caps.yaml'
    print(DESIRED_CAPS_YAML_PATH)

    stream = open(DESIRED_CAPS_YAML_PATH, 'r')

    data = yaml.load(stream, Loader=yaml.FullLoader)

    desired_caps = {'platformName' : data['platformName'],
                    'platformVersion' : data['platformVersion'],
                    'deviceName' : data['deviceName'],
                    'appPackage' : data['appPackage'],
                    'appActivity' : data['appActivity'],
                    'ensureWebviewsHavePages' : data['ensureWebviewsHavePages'],
                    'noReset' : data['noReset']}

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

2.后面直接再上面加类不如下

class baseDrivera :
    @staticmethod
    def android_driver() :
        # 从desired_caps.yaml读取driver配置数据

        # 项目根目录路径即android-ui-autotest文件夹的路径,获取当前文件所在目录的上一级目录
        BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        # capabilities配置文件desired_caps.py路径
        # os.path.dirname返回pyth的父路径
        # os.path.abspath返回pyth的绝对路径
        DESIRED_CAPS_YAML_PATH = BASE_PATH + '\config\desired_caps.yaml'
        print(DESIRED_CAPS_YAML_PATH)

        stream = open(DESIRED_CAPS_YAML_PATH, 'r')

        data = yaml.load(stream, Loader=yaml.FullLoader)

        desired_caps = {'platformName' : data['platformName'],
                        'platformVersion' : data['platformVersion'],
                        'deviceName' : data['deviceName'],
                        'appPackage' : data['appPackage'],
                        'appActivity' : data['appActivity'],
                        'ensureWebviewsHavePages' : data['ensureWebviewsHavePages'],
                        'noReset' : data['noReset']}

        driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
        driver.implicitly_wait(15)
baseDrivera.android_driver()
这样也可以。

3.按照下面的也可以

class baseDrivera :
    def __init__(self, se_driver) :
        self.driver = se_driver
#加上上面那段函数才能用类
    @staticmethod
    def android_driver() :
        # 从desired_caps.yaml读取driver配置数据

        # 项目根目录路径即android-ui-autotest文件夹的路径,获取当前文件所在目录的上一级目录
        BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        # capabilities配置文件desired_caps.py路径
        # os.path.dirname返回pyth的父路径
        # os.path.abspath返回pyth的绝对路径
        DESIRED_CAPS_YAML_PATH = BASE_PATH + '\config\desired_caps.yaml'
        print(DESIRED_CAPS_YAML_PATH)

        stream = open(DESIRED_CAPS_YAML_PATH, 'r')

        data = yaml.load(stream, Loader=yaml.FullLoader)

        desired_caps = {'platformName' : data['platformName'],
                        'platformVersion' : data['platformVersion'],
                        'deviceName' : data['deviceName'],
                        'appPackage' : data['appPackage'],
                        'appActivity' : data['appActivity'],
                        'ensureWebviewsHavePages' : data['ensureWebviewsHavePages'],
                        'noReset' : data['noReset']}

        driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
        driver.implicitly_wait(15)
if __name__ == '__main__':
    Driveara = baseDrivera(['some', 'se_driver'])
    Driveara.android_driver()

重点

第1段

class baseDrivera :
    def __init__(self, se_driver) :
        self.driver = se_driver
最后1段调用
if __name__ == '__main__':
    Driveara = baseDrivera(['some', 'se_driver'])
    Driveara.android_driver()
4.目前没有搞明白第2个写法和第3个写法的区别要是有明白这块的辛苦帮忙答疑谢谢啦。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6