# #!usr/bin/env python
# # -*- coding:utf-8 -*-
# """
# # python2.7
# @time: 2018/03/14 08:52:08
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
# """

#coding=utf-8
import os
import re
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
# D:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js
settingsApkPath = './apk/settings_apk-debug.apk'
unlockApkPath = './apk/unlock_apk-debug.apk'

def init():
    _initApks()
    platformName = 'Android'
    platformVersion = os.popen('adb shell getprop ro.build.version.release').readlines()[0].split('\r\n')[0]
    deviceName = os.popen('adb devices').readlines()[1].split('\t')[0]
    appPackage = 'com.android.calculator2'
    appActivity = '.Calculator'

    desired_caps = {}
    desired_caps['platformName'] = platformName
    desired_caps['platformVersion'] = platformVersion
    desired_caps['deviceName'] = deviceName
    # desired_caps['appPackage'] = 'com.huawei.hivision.testywj1'
    # desired_caps['appActivity'] = '.HiVMainActivity'
    desired_caps['appPackage'] = appPackage
    desired_caps['appActivity'] = appActivity
    global driver
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)



def step():
    driver.find_element_by_name("1").click()
    driver.find_element_by_name("5").click()
    driver.find_element_by_name("9").click()
    # driver.find_element_by_name("delete").click()
    driver.find_element_by_name("9").click()
    driver.find_element_by_name("5").click()
    driver.find_element_by_name("6").click()
    # driver.find_element_by_name("=").click()
    driver.quit()
    # 按键
    # driver.find_element_by_name("Name").sendKeys("jack")
    driver.press_keycode(29)
    # 模拟点击
    TouchAction(driver).press(x=0, y=308).release().perform()
    TouchAction(driver).move_to(x=0, y=308).release().perform()
    TouchAction(driver).wait(3000)
    driver.lock(10)
    # driver.current_activity
    # driver.current_context
    # driver.current_package
    # driver.current_url
    # driver.current_window_handle
    # 收起键盘
    driver.hide_keyboard()
    # 滑动
    driver.swipe(75, 500, 75, 0, 800)
    # 拉推文件
    driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')
    driver.push_file('','')

    # resetApp()
    # getAppString()
    # sendKeyEvent()
    # currentActivity()
    # pullFile()
    # pushFile()
    # pullFolder()
    # hideKeyboard()
    # runAppInBackground()
    # performTouchAction()
    # performMultiTouchAction()
    # tap()
    # swipe()
    # pinch()
    # zoom()
    # getNamedTextField()
    # isAppInstalled()
    # installApp()
    # removeApp()
    # launchApp()
    # closeApp()
    # endTestCoverage()
    # lockScreen()
    # shake()
    # complexFind()
    # scrollTo()
    # scrollToExact()
    # openNotifications()
    # Context
    # Switching:.context(),.getContextHandles(), getContext())


    # findElementByAccessibilityId()
    # findElementsByAccessibilityId()
    # findElementByIosUIAutomation()
    # findElementsByIosUIAutomation()
    # findElementByAndroidUIAutomator()
    # findElementsByAndroidUIAutomator()

    # find_element_by_accessibility_id
    # find_elements_by_accessibility_id
    # find_element_by_android_uiautomator
    # find_elements_by_android_uiautomator


def _getPackageName(apkPath):
    appPackageAdb = list(os.popen(r'D:\Android\hwsdk\build-tools\26.0.2\aapt.exe dump badging ' + apkPath).readlines())
    return re.findall(r"package: name='(.*?)'", appPackageAdb[0])[0]

def _isApkInstalled(packageName):
    adb_get_packages = 'adb shell pm list packages'
    output = os.popen(adb_get_packages)
    packages = []
    for line in output.readlines():
        packages.append(line.strip())
    return packages.__contains__('package:' + packageName)

def _initApks():
    print('start initApks------------------------')
    settingsPackageName = _getPackageName(settingsApkPath)
    unlockPackageName = _getPackageName(unlockApkPath)

    # install settingsApk
    if not _isApkInstalled(settingsPackageName):
        installAdb = 'adb install -r ' + settingsApkPath
        installResult = os.popen(installAdb).read()
        print('install:' + settingsPackageName + installResult)
    else:
        print(settingsPackageName + ' has been installed')
    # install settingsPackage
    if not _isApkInstalled(unlockPackageName):
        installAdb = 'adb install -r ' + unlockApkPath
        installResult = os.popen(installAdb).read()
        print('install:' + unlockPackageName + installResult)
    else:
        print(unlockPackageName + ' has been installed')
    print('end initApks------------------------')

def end():
    print('All Success')


if __name__=='__main__':

    init()
    step()
    end()









Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐