zoukankan      html  css  js  c++  java
  • appium(1)-获取APPdriver封装

    lib目录下面:

    lib/GetDriver.py   (启动APP)

    # -*- coding: utf-8 -*-
    '''
    Created on 2019/11/6
    
    @author: 01372445
    '''
    
    from appium import webdriver
    from time import sleep
    import ReadConfig
    import GetDeviceInfo
    
    def getdriver():
        readcf = ReadConfig.ReadConfig()
        url = readcf.getitemvalue("device","url")
        platformName = readcf.getitemvalue("device", "platformName")
        automationName = readcf.getitemvalue("device", "automationName")
        appPackage = readcf.getitemvalue("device", "appPackage")
        appActivity = readcf.getitemvalue("device", "appActivity")
    
        device = GetDeviceInfo.GetDeviceInfo()
        deviceName = device.GetDeviceName()
    
        u"启动app接口"
        desired_caps = {}
        desired_caps['platformName'] = platformName
        desired_caps['deviceName'] = deviceName
        desired_caps['automationName'] = automationName
        desired_caps['appPackage'] = appPackage
        desired_caps['appActivity'] = appActivity
        desired_caps['resetKeyboard'] = 'true'
        desired_caps['unicodeKeyboard'] = 'true'
        desired_caps['noReset'] = True # appium1.6以后的版本需要这个设置才可以保存app的登录状态
        driver = webdriver.Remote(command_executor = url, desired_capabilities = desired_caps)
        return driver
    
    
    if __name__ == '__main__':
        a=getdriver()

    lib/ReadConfig.py   (读取相关的配置)

    # -*- coding: utf-8 -*-
    '''
    Created on 2019/11/6
    
    '''
    import  configparser
    import os
    
    class ReadConfig():
        def __init__(self):
            self.currentdir = os.getcwd()
            self.configfilepath = str(self.currentdir) + "config.ini"
            self.cf = configparser.ConfigParser()
            self.cf.read(self.configfilepath)
    
        def getitemvalue(self,section,item):
            itemvalue=self.cf.get(section,item)
            return itemvalue
    
    
    if __name__ == '__main__':
        a=ReadConfig()
        b=a.getitemvalue("email","username")
        print b

    lib/config.ini   (相关的配置)

    [device]
    platformName = android
    automationName = uiautomator2
    appPackage = xxx
    appActivity = xxx
    url = http://127.0.0.1:4723/wd/hub
    
    
    [email]
    smtpserver = xxx
    username =xxx
    password =xxx
    sender = xxx
    receiver = xxx
    
    [cmd]
    openAppium = node /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js
    stopAppium = pkill node
    startServer = adb statr-server
    closeServer = adb kill-server
    checkPhone = adb get-state
    devicename = adb devices
    devicevesion= adb shell getprop ro.build.version.release

    public/GetDeviceInfo.py    (获取设备的相关信息)

    # -*- coding: utf-8 -*-
    '''
    Created on 2019/11/6
    
    @author: 01372445
    '''
    
    import ReadConfig
    import os
    import re
    
    class GetDeviceInfo():
        def __init__(self):
            self.readcf = ReadConfig.ReadConfig()
            self.namecmd = self.readcf.getitemvalue("cmd", "devicename")
            self.vesioncmd = self.readcf.getitemvalue("cmd", "devicevesion")
    
        def GetDeviceName(self):
            r = os.popen(self.namecmd)
            text = r.readlines()
            if len(text)==3:
                devicename = text[1].split()[0]
                print "devicename is",devicename
                return devicename
            elif len(text) > 3:
                print "该电脑连接了多台设备,请连接一台设备"
    
            else:
                print "无设备连接,请连接一台设备"
    
    
    
        def GetDevicePlatformVersion(self):
            r = os.popen(self.vesioncmd)
            text = r.read()
            version = str(text)
            print "设备的版本号:",version
            return version
    
    if __name__ == '__main__':
        a=GetDeviceInfo()
        a.GetDeviceName()
        a.GetDevicePlatformVersion()
  • 相关阅读:
    .Net Core 静态文件跨域访问
    SQL Server查看锁表与解锁表
    C# 获取Bilibili网站中的视频信息
    C# 生成条形码、二维码
    HttpWebRequest 远程服务器返回错误: (403) 已禁止
    C# NPOI导出Excel以及动态设置列宽
    【c++设计模式】观察者模式
    【c++设计模式】状态模式
    【c++设计模式】职责链模式
    【c++设计模式】命令模式
  • 原文地址:https://www.cnblogs.com/dmtz/p/11807480.html
Copyright © 2011-2022 走看看