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()