appium + python APP UI Automation - start APP Package

lib directory:

lib / GetDriver.py (start 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 " Start app Interface " 
    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 ' ] = ' to true ' 
    desired_caps [ ' unicodeKeyboard ' ] = ' to true ' 
    desired_caps [ ' NoReset ' ] = True # after appium1.6 version requires this setting can save the app's login state 
    driver = webdriver.Remote (= command_executor URL, desired_capabilities = desired_caps)
     return Driver


if __name__ == '__main__':
    a=getdriver()

 

lib / ReadConfig.py (read the relevant configuration)

# -*- 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 (associated configuration)

[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 (information acquiring apparatus)

# -*- 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  " The computer is connected to more than one device, connected to a device "

        the else :
             Print  " no device is connected, connected to a device "



    def GetDevicePlatformVersion(self):
        r = os.popen(self.vesioncmd)
        text = r.read()
        Version = str (text)
         Print  " device version number: " , Version
         return Version

if __name__ == '__main__':
    a=GetDeviceInfo()
    a.GetDeviceName()
    a.GetDevicePlatformVersion()

 

Guess you like

Origin www.cnblogs.com/dmtz/p/11807480.html